gpt4 book ai didi

node.js - Sqlite 如何对值进行转义以防止 SQL 注入(inject)

转载 作者:搜寻专家 更新时间:2023-10-31 23:34:43 47 4
gpt4 key购买 nike

谁能告诉我如何转义输入值以防止 SQL 注入(inject)?我有一个用户身份验证应用程序,我需要以某种方式导入一些安全性。

我的验证看起来像这样:

//Validation 
req.checkBody('name', 'Name is required').notEmpty();
req.checkBody('email', 'Email is required').notEmpty();
req.checkBody('email', 'Email is not valid').isEmail();
req.checkBody('password', 'Password is required').notEmpty();
req.checkBody('password', 'Password must have at least 6 characters').len(6,20);
req.checkBody('password2', 'Passwords do not match').equals(req.body.password);

然后我INSERT一些值如下:

var stmt = db.prepare("INSERT INTO users ( id, name, email, password, salt) VALUES (NULL, ?, ?, ?, ?)");
stmt.run([ name, hashEmail(email,'salt'), hashPassword(password,'salt'), 'salt'], function(error){ //.....

有人告诉我这不是真正安全的导入值的方法,但只要我在互联网安全方面没有真正的经验,我就需要你的一些帮助。

问候

最佳答案

因为您已经正确地使用了参数化查询(而不是构造一个混合了请求参数的 SQL 字符串,您在查询中使用了 ? 来指定在 SQL 语句执行时参数将被替换的位置已执行),上面显示的代码已经很好并且不易受到 SQL 注入(inject)攻击

只有将这些变量与 SQL 字符串本身连接起来,它才会容易受到 SQLi 的攻击。<​​/p>

关于node.js - Sqlite 如何对值进行转义以防止 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40418693/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com