安全性測(cè)試 - nodejs中如何防m(xù)ySQL注入
問(wèn)題描述
如題,如能有具體示例或demo鏈接感激不盡
問(wèn)題解答
回答1:使用escape()對(duì)傳入?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()的查詢(xún)參數(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查詢(xún)標(biāo)識(shí)符
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第一頁(yè)就是答案
相關(guān)文章:
1. 致命錯(cuò)誤: Class ’appfacadeTest’ not found2. 怎么php怎么通過(guò)數(shù)組顯示sql查詢(xún)結(jié)果呢,查詢(xún)結(jié)果有多條,如圖。3. 老師們php,插入數(shù)據(jù)庫(kù)mysql,都是空的,要怎么解決4. php點(diǎn)贊一天一次怎么實(shí)現(xiàn)5. sql語(yǔ)句 - 如何在mysql中批量添加用戶(hù)?6. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?7. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)8. PHP類(lèi)屬性聲明?9. 求大神支招,php怎么操作在一個(gè)html文件的<head>標(biāo)記內(nèi)添加內(nèi)容?10. phpstady在win10上運(yùn)行
