Sqlite如何转义值以防止SQL注入
Sqlite如何转义值以防止SQL注入
有人可以告诉我如何转义输入值以防止SQL注入吗?我有一个用户身份验证应用程序,我需要以某种方式导入一些安全性。
我的验证如下:
//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注入的攻击]]。
仅当您将这些变量与SQL字符串本身连接在一起时,它才会受到SQLi的攻击。
最新文章
- 正方形。。。
- 网络命令(ARP、PING)的使用分析
- .net大连地区
- 【Linux】目录权限和默认权限
- annotation 的方法
- 什么是 Android Jetpack?
- 主成分分析(PCA)(principal component analysis)
- 数字芯片有哪些,以及它们的功能是什么?
- 初看SOA:SOA是什么?
- Android 6.0 Marshmallow介绍
- Vss2005 的使用方法
- SAP 启动物料帐后不可更改物料价格的处理方法
- 如何从ext3升级到ext4?
- EXT3系统文件.
- 搭建网站的步骤有哪些?
- itoa()函数
- cefsharp内嵌资源html的读取,C#(csharp)用CefSharp开发实现一个浏览器,抓取网站任意资源...
- HTTPS 中双向认证SSL 协议的具体过程
- linux查看tomcat 控制台,linux 下查看Tomcat的状态,以及开启停止服务命令
- IDEA乱码问题(jdk18)