代码之家  ›  专栏  ›  技术社区  ›  Paul

我必须更换我所有的htmlspecialchars吗。。。mysql_real_eescape_string中的ENT_QUOTES?

  •  2
  • Paul  · 技术社区  · 14 年前

    我想保护我的网站免受sql注入和其他可能的风险的影响,所以我更改了所有的sql查询,为每个变量添加了这样的内容:

     $getLid = htmlspecialchars($_GET[lid], ENT_QUOTES);
    

    对于我的50个文件。。。但我刚刚发现,这可能是我的错误:我应该为任何“输入”添加mysql_real_sescape_string。。。

    它还更好用吗 mysql_real_escape_string 在这种情况下,或者 ENT_QUOTES 是否也有效?我是否必须重新启动并添加 mysql_real_sescape_string 而不是我的 htmlspecialchars(..., ENT_QUOTES); ?

    编辑:

    你的意思是那样的吗?

    $getLid = escape_string($str);
    
    function escape_string($str){
        return mysql_real_escape_string($str);
    }
    

    编辑n°2:返回语句不能正常工作,你知道为什么吗?

    警告:mysql_real_aescape_string()[function.mysql real escape-string]:在www/escape_file.php中无法建立到服务器的链接

    www/escape_file.php中的用户访问被拒绝

    谢谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   Siamak Motlagh    14 年前

    有很多关于安全用户输入的参考资料。你可以用谷歌搜索它,但我认为你应该在另一个php文件中写一个类或函数,比如“escape.php”,然后把这个文件包括在你所有的50个文件中。然后用它逃跑。示例:

    include 'escape.php';
    $str = escape_string($str);
    

    因此,只需更改一个文件,就可以轻松地更改转义函数。 我希望它能帮助你。