xss magic_quotes_gpc
---恢复内容开始---
magic_quotes_gpc函数,在php5.4以上移除了,
但是很奇怪的是 我的5.6版本这边 是可以找到这个选项的。
在php.ini文件里面,默认关闭,如果将此开启,php解析会自动将POST、GET/COOKIE传过来的数据进行转义。
在php5.4的更高版本中,这个选项被去掉了,也即是php解析器不会自动为POST、GET、COOKIE过来的数据增加转义字符"\",而是把安全编码交给了用户自己,从而避免了magic_quotes_gpc未设置,用户依赖这个设置而带来了安全隐患。
这就需要我们在进行sql语句执行前,必须转义任何变量:
$value = mysql_real_escape_string($value);
除了数据库部分,程序如何加强自己自身的安全性,保护php cookie get post files 数据。
<?php $magic_quotes_gpc = get_magic_quotes_gpc(); @extract(daddslashes($_COOKIE)); @extract(daddslashes($_POST)); @extract(daddslashes($_GET)); if(!$magic_quotes_gpc) { $_FILES = daddslashes($_FILES); }
//daddslashes函数,转译字符函数 function daddslashes($string) { if(!is_array($string)) return addslashes($string); foreach($string as $key => $val) $string[$key] = daddslashes($val); return $string; } ?>