【发布时间】:2015-04-25 13:57:04
【问题描述】:
我的快速应用程序中有一个接受 POST 数据 (json) 的端点。我想使用这些数据安全地查询 MySQL 数据库。转义和更改我的字符串是否会使我容易受到剥削?
我需要更改来自请求的字符串,因为我不想在 LIKE 子句的结束单引号之前插入“%”。
var searchTerm = mysql.escape(req.body.firstName)
var newStr = "'" + searchTerm.substring(1, searchTerm.length - 1) + "%'"
// Example: 'alex' => 'alex%'
我的查询是:
SELECT * FROM tbl WHERE col LIKE " + newStr + " ORDER BY key
这可行,但有没有首选或更安全的方法来做到这一点?
供参考:
- 我正在使用我正在使用这个包:https://github.com/felixge/node-mysql
更新/回答
根据EternalHour 的回答,正确的语法是:
var newStr = req.body.firstName + "%"
var sql = "SELECT cols FROM tbl WHERE col LIKE ? ORDER BY key"
sql = mysql.format(sql, newStr)
【问题讨论】:
标签: javascript mysql sql express node-mysql