您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使JavaScript字符串与SQL友好

使JavaScript字符串与SQL友好

事实证明,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()是字符集感知的,但是我不确定这会带来什么好处。

SQLServer 2022/1/1 18:18:09 有450人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶