Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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 在写入数据库之前清理数据的更好方法_Php_Sql Injection_Mysql Real Escape String - Fatal编程技术网

Php 在写入数据库之前清理数据的更好方法

Php 在写入数据库之前清理数据的更好方法,php,sql-injection,mysql-real-escape-string,Php,Sql Injection,Mysql Real Escape String,我正在使用PHP和MySQL来支持一个基本论坛。当用户使用撇号(')或在帖子中插入链接时,mysql\u real\u escape\u string函数将\添加到文本中。显示文章时,链接不起作用,所有撇号前面都有一个\ 问题是我在输出文本之前没有做什么,还是我在写入MySQL之前没有正确清理数据?是否打开了magicquotes?您可以通过如下方式创建一个PHP页面来快速检查: <?php var_dump(get_magic_quotes_gpc()) ?> 如果页面显示类

我正在使用PHP和MySQL来支持一个基本论坛。当用户使用撇号(')或在帖子中插入链接时,mysql\u real\u escape\u string函数将\添加到文本中。显示文章时,链接不起作用,所有撇号前面都有一个\


问题是我在输出文本之前没有做什么,还是我在写入MySQL之前没有正确清理数据?

是否打开了magicquotes?您可以通过如下方式创建一个PHP页面来快速检查:

<?php var_dump(get_magic_quotes_gpc()) ?>


如果页面显示类似于
int(1)
,那么罪魁祸首不是
mysql\u real\u escape\u string
,而是PHP本身。这是一个安全功能,但不是很安全,而且大多只是令人讨厌。在清理每个变量之前,您首先需要使用撤消斜杠。

您还可以使用以下命令关闭魔引号:

if ( version_compare(PHP_VERSION, '5.3.0', '<') ) {
    set_magic_quotes_runtime(0);
}
if(版本比较(PHP版本,'5.3.0','