补白: 本文针对mysqljs/mysql。
为了避免SQL注入,能够将SQL中传入参数进行编码,而不是直接进行字符串拼接。在node-mysql中,避免SQL注入的常用办法有以下四种:
参数编码办法有如下三个:
mysql.escape(param) connection.escape(param) pool.escape(param)
例如:
var userId = 1, name = 'test'; var query = connection.query('SELECT * FROM users WHERE id = ' + connection.escape(userId) + ', name = ' + connection.escape(name), function(err, results) { // ... }); console.log(query.sql); // SELECT * FROM users WHERE id = 1, name = 'test'
可运用 ? 做为查询参数占位符。在运用查询参数占位符时,在其内部主动调用 connection.escape() 办法对传入参数进行编码。
如:
var userId = 1, name = 'test'; var query = connection.query('SELECT * FROM users WHERE id = ?, name = ?', [userId, name], function(err, results) { // ... }); console.log(query.sql); // SELECT * FROM users WHERE id = 1, name = 'test'
上面程序还能够改写成如下:
var post = {userId: 1, name: 'test'}; var query = connection.query('SELECT * FROM users WHERE ?', post, function(err, results) { // ... }); console.log(query.sql); // SELECT * FROM users WHERE id = 1, name = 'test'
假如你不信任用户传入的SQL标识符(数据库、表、字符名),能够运用escapeId()办法进行编码。最常用于排序等。escapeId()有如下三个功用类似的办法:
mysql.escapeId(identifier) connection.escapeId(identifier) pool.escapeId(identifier)
例如:
var sorter = 'date'; var sql = 'SELECT * FROM posts ORDER BY ' + connection.escapeId(sorter); connection.query(sql, function(err, results) { // ... });
预备查询,该函数会挑选适宜的转义办法转义参数 mysql.format()用于预备查询句子,该函数会主动的挑选适宜的办法转义参数。
例如:
var userId = 1; var sql = "SELECT * FROM ?? WHERE ?? = ?"; var inserts = ['users', 'id', userId]; sql = mysql.format(sql, inserts); // SELECT * FROM users WHERE id = 1
1. https://github.com/mysqljs/mysql
2. http://itbilu.com/nodejs/npm/NyPG8LhlW.html
补白:Node.js与MySQL交互操作有许多库,详细能够在 https://www.npmjs.org/search?q=mysql 检查。
由于假如咱们能够经过一些技巧将开端的 imageData 消除的话就能够经过将 URL 中的 ID 设置为 imageData ,随后修正 URL 中的 type 参数,到达操控 imageData....
曾经觉得sqlmap自己玩得挺溜了,成果最近有一个使命,需求调用sqlmap api接口来验证存在sql注入缝隙的站点,一开端听到这个使命觉得完了,或许完结不了了。后来我去网上搜了搜相关的材料,发现关...
'DB_PWD' => '".$_POST['db_pwd']', //暗码 else if (!String.IsNullOrEmpty(typeValue = cont...
黑客是什么?没有多少自称黑客的人能解答。 在这些浮于世的黑客眼中,黑客就是那一个个被D死的服务器、被挂上姓名的主页、被篡改了版权的程序、被植入木马的软件……在这些人没有注意...
2018年6月,国外安全研讨人员揭露了运用Windows 10下才被引进的新文件类型“.SettingContent-ms”履行恣意指令的进犯技巧,并揭露了POC。 而该新式进犯办法被揭露后就马上被黑...
https://github.com/rapid7/metasploit-framework/pull/12283?from=timeline&isappinstalled=0test.loc...