如何防止nodejs中的sql注入和sequelize?

时间:2016-02-27 10:36:47

标签: mysql node.js express sql-injection sequelize.js

我使用sequelize with express。我需要保护db不受sql-injection的影响。我看到了续集的文件,但我找不到任何东西。所以请帮我解决如何使用sequelize防止sql注入。

1 个答案:

答案 0 :(得分:18)

Sequelize逃避替换,避免了SQL注入攻击的核心问题:未转义的字符串。它还支持使用SQLite或PostgreSQL时的绑定参数,通过将参数分别发送到数据库查询as documented here来进一步降低风险:

  

绑定参数就像替换。除了替换被转义   并在发送查询之前通过sequelize插入到查询中   数据库,同时将bind参数发送到数据库外   SQL查询文本。查询可以具有绑定参数或   替代品。

     

只有SQLite和PostgreSQL支持绑定参数。其他方言   将以与完成相同的方式将它们插入到SQL查询中   更换。绑定参数由$ 1,$ 2,...引用   (数字)或$键(字母数字)。这与方言无关。