安全性測試 - nodejs中如何防m(xù)ySQL注入
問題描述
如題,如能有具體示例或demo鏈接感激不盡
問題解答
回答1:使用escape()對傳入?yún)?shù)進(jìn)行編碼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.query()的查詢參數(shù)占位符
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’使用escapeId()編碼SQL查詢標(biāo)識符
var sorter = ’date’;var sql = ’SELECT * FROM posts ORDER BY ’ + connection.escapeId(sorter);connection.query(sql, function(err, results) { // ...});使用mysql.format()轉(zhuǎn)義參數(shù)
var userId = 1;var sql = 'SELECT * FROM ?? WHERE ?? = ?';var inserts = [’users’, ’id’, userId];sql = mysql.format(sql, inserts); // SELECT * FROM users WHERE id = 1
Ref: http://www.dengzhr.com/node-j...
PS: Google第一頁就是答案
相關(guān)文章:
1. javascript - 按鈕鏈接到另一個網(wǎng)址 怎么通過百度統(tǒng)計計算按鈕的點擊數(shù)量2. sql語句 - 如何在mysql中批量添加用戶?3. mysql 可以從 TCP 連接但是不能從 socket 鏈接4. mysql - PHP定時通知、按時發(fā)布怎么做?5. 怎么php怎么通過數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。6. mysql - JAVA怎么實現(xiàn)一個DAO同時實現(xiàn)查詢兩個實體類的結(jié)果集7. 事務(wù) - mysql共享鎖lock in share mode的實際使用場景8. mysql建表索引問題求助9. mysql - 數(shù)據(jù)庫建字段,默認(rèn)值空和empty string有什么區(qū)別 11010. mysql 非主鍵做范圍查找實現(xiàn)原理的一點困惑
