Sequelize:使用sequelize.query进行SQL注入

问题描述 投票:0回答:3

我第一次将 Sequelize 与 PostgreSQL 结合使用。这也是我很长时间以来第一次使用 SQL 数据库。

我一直在研究如何提高一些SQL查询的性能和安全性。我遇到了

sequelize.query()
方法并开始将其用于此目的。

这种在 Sequelize 中进行原始查询的方式是否容易受到 SQL 注入攻击?

node.js postgresql sequelize.js sql-injection
3个回答
6
投票

虽然您可以避免它们,但您也可以发出容易受到 SQL 注入攻击的查询。

如果您专门使用所有用户输入的值使用替换或绑定参数的查询,那么您应该是安全的。


0
投票

这是否容易受到 SQL 注入攻击:简单的答案是“是”。 您正在使用原始查询。如果该原始查询曾经从用户输入中获取输入(无论是间接的),则存在 SQL 注入的可能性。风险是否真实取决于代码的其余部分。

性能不同。原始查询的性能可能比使用 sequalize 方法稍高一些,但更依赖于数据库结构和查询本身的性质。这是一个广泛的话题,无法从所提供的信息中得到答案。


0
投票

Sequelize 会转义您传递给

replacements
参数的数据,如 source 中所示。

但是,Sequelize 中通过使用替换存在至少一个 SQL 注入漏洞。在将用户输入传递给替代者之前进一步验证用户输入可能是明智之举。

© www.soinside.com 2019 - 2024. All rights reserved.