我需要了解如何在 NodeJS sequelize ORM 上防止 sql 注入

I need to know about prevent sql injection on NodeJS sequelize ORM

我是初学者nodejs sequelize ORM。我想知道如何防止 sql 注入 NodeJS sequelize 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.

中的一些运算符组合