我需要了解如何防止 NodeJS 上的 sql 注入 sequelize ORM
Posted
技术标签:
【中文标题】我需要了解如何防止 NodeJS 上的 sql 注入 sequelize ORM【英文标题】:I need to know about prevent sql injection on NodeJS sequelize ORM 【发布时间】:2021-11-17 23:31:50 【问题描述】:我是初学者nodejs sequelize ORM。我想知道如何防止NodeJS sequelize ORM上的sql注入。
例子
我有一个类似http://localhost:3000/admin/video/edit/5
的路由,控制器看起来像
albumEdit: async (req, res) =>
const editInfoId = req.params.id;
await Movie.findOne( where: id: editInfoId ).then((movie) =>
if (movie)
res.render('admin/movies/edit', title: 'Edit Movie On Page One', movie );
);
,
现在我需要知道如何保护数据库免受 SQL 注入?
【问题讨论】:
【参考方案1】:表明 where: id: editInfoId
您已经避免了 SQL 注入,因为 Sequelize 将 id
值视为静态字符串,将其作为参数传递给底层 SQL 查询。
使用where
选项,当其中一些从不受信任的来源传递时,不使用任何从字符串连接的 SQL 查询片段将是避免 SQL 注入的良好开端。
尝试仅使用简单的object
类条件(就像您在上面所做的那样)或使用来自Sequelize.Op
的一些运算符组合。
【讨论】:
以上是关于我需要了解如何防止 NodeJS 上的 sql 注入 sequelize ORM的主要内容,如果未能解决你的问题,请参考以下文章
使用 nodejs 应用程序上的刷新和访问令牌了解身份验证流程