使JavaScript字符串与SQL友好

是否有办法将JavaScript字符串传递给MySQL的NodeJSfriendly?我正在尝试将电子邮件地址传递给我的NodeJS服务器并查询到MySQL数据库。在执行常规文本(例如用户名)时可以正常工作,但电子邮件地址却不能。显然,使用转义不是正确的答案,因为这并不意味着要进行SQL插入。我假设我需要一些PHP函数mysql_real_escape_string()

回答:

事实证明,mysql_real_escape_string()非常简单。

调用MySQL的库函数mysql_real_escape_string,该函数将反斜杠添加到以下字符前:\ x00,\ n,\ r,\,’,’和\x1a。

实际上听起来很简单。您可以执行以下操作:

function mysql_real_escape_string (str) {

return str.replace(/[\0\x08\x09\x1a\n\r"'\\\%]/g, function (char) {

switch (char) {

case "\0":

return "\\0";

case "\x08":

return "\\b";

case "\x09":

return "\\t";

case "\x1a":

return "\\z";

case "\n":

return "\\n";

case "\r":

return "\\r";

case "\"":

case "'":

case "\\":

case "%":

return "\\"+char; // prepends a backslash to backslash, percent,

// and double/single quotes

default:

return char;

}

});

}

:我还没有通过任何类型的单元测试或安全测试来运行它,但是它确实可以工作,并且,作为一个额外的好处,它转义了制表符,退格键和’%’,因此也可以使用按照OWASP的建议在LIKE查询中使用(不同于PHP原始版本)。

我确实知道这mysql_real_escape_string()是字符集感知的,但是我不确定这会带来什么好处。

以上是 使JavaScript字符串与SQL友好 的全部内容, 来源链接: utcz.com/qa/399998.html

回到顶部