我是一个初学者nodejs序列化ORM。我想知道如何防止sql注入NodeJS序列化ORM。
例子我有一个像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注入?
表明{ where: { id: editInfoId } }
已经避免了SQL注入,因为Sequelize将id
值作为静态字符串传递给底层SQL查询参数。
使用where
选项,当其中一些从不受信任的来源传递时,不从字符串连接任何SQL查询片段,这将是避免SQL注入的一个良好开端。
尝试只使用简单的object
类条件(就像你上面所做的那样),或者使用Sequelize.Op
的一些操作符的组合。