手动函数,以防止没有预处理语句的mysql注入

时间:2013-10-28 11:48:52

标签: php mysql sql-injection

我有一个网站,它对所有mysql查询使用自定义函数进行添加,如下所示:

function custom_addslashes($str) {
    return mysql_real_escape_string($str);
}

最近我发现不推荐使用mysql_real_escape_string。 我有两个选择。任

  1. 浏览整个网站并转换为每个页面的预备语句,(argh)或

  2. 修改上述功能。我假设无法修改上述函数以使用PDO,因为它用于许多不同的查询。

  3. 有没有一个很好的方法来做选项2。 像什么?

    function custom_addslashes($str) {
        return  strtr($str, array("\0" => "", "\\" => "\","'","\\'"));
    }
    

    澄清了问题

1 个答案:

答案 0 :(得分:2)

  

对所有情况都足够了吗?

  

如果没有,应该添加什么?

准备好的陈述

  

我不想使用PDO / Mysqli。太复杂。并且不推荐使用mysql_real_escape_string。

我一生都不会期待这样的结论。