Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我是否必须更改我所有的htmlspecialchars。。。mysql中的ENT\u引号\u真实\u转义\u字符串?_Php_Quotes_Mysql Real Escape String_Htmlspecialchars - Fatal编程技术网

Php 我是否必须更改我所有的htmlspecialchars。。。mysql中的ENT\u引号\u真实\u转义\u字符串?

Php 我是否必须更改我所有的htmlspecialchars。。。mysql中的ENT\u引号\u真实\u转义\u字符串?,php,quotes,mysql-real-escape-string,htmlspecialchars,Php,Quotes,Mysql Real Escape String,Htmlspecialchars,我想保护我的网站免受sql注入和其他可能的风险,因此我更改了所有sql查询,为每个变量添加如下内容: $getLid = htmlspecialchars($_GET[lid], ENT_QUOTES); 对于我的50个文件。。。但我刚刚看到这可能是我的错误:我应该为任何“输入”添加mysql\u real\u escape\u字符串 在这种情况下,还是使用mysql\u real\u escape\u string更好,还是ENT\u QUOTES也有效?我是否需要重新启动并添加mysql

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

 $getLid = htmlspecialchars($_GET[lid], ENT_QUOTES);
对于我的50个文件。。。但我刚刚看到这可能是我的错误:我应该为任何“输入”添加mysql\u real\u escape\u字符串

在这种情况下,还是使用
mysql\u real\u escape\u string
更好,还是
ENT\u QUOTES
也有效?我是否需要重新启动并添加
mysql\u real\u escape\u string
而不是
htmlspecialchars(…,ENT\u引号)

编辑:

你的意思是这样的吗

$getLid = escape_string($str);

function escape_string($str){
    return mysql_real_escape_string($str);
}
编辑编号2:返回语句不能正常工作,您知道原因吗

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

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


谢谢

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

include 'escape.php';
$str = escape_string($str);
因此,只需更改一个文件,就可以轻松地更改转义函数。
我希望它能对您有所帮助。

您的第一个错误是使用了
ext/mysql。
请阅读上的“如何通过SQL注入确保数据库查询的安全性?”谢谢。@alexn:谢谢,关于我的问题还有其他想法吗?谢谢,您是指我的编辑中的内容吗?(我上面的帖子)是的。但是您应该将此代码写入另一个文件并包含它。然后您可以通过只更改一个文件来更改所有文件。argh。。。谢谢好的,ENT_引号不能以某种方式替换转义字符串?如果我没有选择,我会替换我所有的文件…它们用于完全不同的事情。htmlspecialchars()将特殊的HTML字符转换为实体,以便在输出时不会出现问题(或XSS风险),而mysql_real_escape_string()会转义敏感的SQL字符,因此可以执行插值查询,而不会出现SQL注入风险。请注意,mysql必须是有效的开放连接。这是必需的,因为转义取决于服务器使用的字符集。请看以下链接:-