繁体   English   中英

是否可以在没有准备好的语句的情况下防止SQL注入(Node.js&MSSQL)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM