我是否必须更改所有htmlspecialchars ...在mysql_real_escape_string中的ENT_QUOTES?

时间:2012-07-31 18:56:47

标签: php quotes mysql-real-escape-string htmlspecialchars

我想保护我的网站免受sql注入和其他可能的风险,所以我通过添加每个变量来改变我所有的SQL查询:

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

对于我的50个文件...但我刚刚看到它可能是我的错误:我应该为任何“输入”添加mysql_real_escape_string ...

在这种情况下使用mysql_real_escape_string或者ENT_QUOTES也可以使用吗?我是否必须重新启动并添加mysql_real_escape_string而不是我的htmlspecialchars(..., ENT_QUOTES);

编辑:

你的意思是什么?

$getLid = escape_string($str);

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

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

  

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

     

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

谢谢

1 个答案:

答案 0 :(得分:1)

有许多安全用户输入的参考。你可以谷歌它,但我认为你应该在另一个php文件中写一个类或函数,如“escape.php”,然后将该文件包含在你的所有50个文件中。然后用它来逃避。 exmple:

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

因此,您只需更改单个文件即可轻松更改转义功能。 我希望它会对你有所帮助。