[英]Is it possible to prevent SQL injection without prepared statements (Node.js & MSSQL)
仅仅从用户输入中转义危险字符然后直接运行SQL查询而不是使用准备好的语句,是否可以接受?
例如,我可以在输入中使用以下功能,构建查询然后执行它吗?
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
}
});
}
创建存储过程。 构建数据访问层/服务。 从应用程序调用服务上的方法,并从应用程序传递适当的方法参数。
在我的Angular代码中,我从实现为注入到组件中的服务的数据存储库层调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.