NodeJS 使用Sequalize.op.eq会防止sql注入吗?或者输入也应该被规范化吗?

gorkyyrv  于 2023-02-12  发布在  Node.js
关注(0)|答案(1)|浏览(139)

我使用nodejs,express和sequlize来显示一个表单并保存到数据库中,因为我是一个新的后台操作者,我想确保保存到数据库中的数据是安全的。
正如标题中所述,使用Seqlelize.Op.eq来防止SQL注入是否足够,或者是否还应该使用其他一些技术(如规范化)?
该应用程序所做的是处理用户输入的“错别字”,并强调不正确的用法,并给出解释,为什么它是错误的。
因此,将保存到数据库的数据会有所不同。
这是我目前使用的代码

async function addStringToTable(string, uuid) {
    // Save the input string to the database
    try{
        await UserText.create({
            userText_field: { [Sequelize.Op.eq]: string },
            uuidv4: { [Sequelize.Op.eq]: uuid }
        });
    } catch (e) {
        console.log(e);
    }
}

还有什么我需要注意的吗?
谢谢

pcww981p

pcww981p1#

这就是ORM的美妙之处。即使不使用额外的语法。基本上只是写你的语法

await UserText.create({
            userText_field: {  string },
            uuidv4: {  uuid }
        });

这会自动防止sql注入。它相当于准备好的查询,你会在编写原始sql查询的情况下使用它。但是对于sequalize(和我知道的任何其他ORM),它会在每次查询时自动完成,不需要特殊的语法。你也可以通过记录sequalize代码输出的查询来确认这一点

相关问题