我使用sequelize with express。我需要保护db不受sql-injection的影响。我看到了续集的文件,但我找不到任何东西。所以请帮我解决如何使用sequelize防止sql注入。
答案 0 :(得分:18)
Sequelize逃避替换,避免了SQL注入攻击的核心问题:未转义的字符串。它还支持使用SQLite或PostgreSQL时的绑定参数,通过将参数分别发送到数据库查询as documented here来进一步降低风险:
绑定参数就像替换。除了替换被转义 并在发送查询之前通过sequelize插入到查询中 数据库,同时将bind参数发送到数据库外 SQL查询文本。查询可以具有绑定参数或 替代品。
只有SQLite和PostgreSQL支持绑定参数。其他方言 将以与完成相同的方式将它们插入到SQL查询中 更换。绑定参数由$ 1,$ 2,...引用 (数字)或$键(字母数字)。这与方言无关。