网站攻击最常见的就是sql注入式攻击了,防范于未然很重要~
PHP可以开启环境变量配置为POST、GET、REQUEST、COOKIE等用户传过来的参数值自动增加转义字符“\”,以确保这些数据的安全性。
在php.ini配置环境变量magic_quotes_gpc的值为On时开启自动添加转义字符,配置为Off时关闭。
get_magic_quotes_gpc()函数就是获取magic_quotes_gpc的值的函数,On时为1,Off时为0。
开启后,在使用数据之前恢复正常的数据可采用以下函数qingzzDoStripSlashes()。/**
* 去除多余的转义字符
*/
function qingzzDoStripslashes() {
if (PHP_VERSION()
$_GET = qingzzStripslashesDeep($_GET);
$_POST = qingzzStripslashesDeep($_POST);
$_COOKIE = qingzzStripslashesDeep($_COOKIE);
$_REQUEST = qingzzStripslashesDeep($_REQUEST);
}
}
/**
* 递归去除转义字符
*/
function qingzzStripslashesDeep($value) {
$value = is_array($value) ? array_map('stripslashesDeep', $value) : stripslashes($value);
return $value;
}
PHP6去除了magic quotes机制,因此只能自行添加了。/**
* 添加转义字符
*/
function qingzzAddslashes() {
if (PHP_VERSION >= 6 || !get_magic_quotes_gpc()) {
$_GET = qingzzAddslashesDeep($_GET);
$_POST = qingzzAddslashesDeep($_POST);
$_COOKIE = qingzzAddslashesDeep($_COOKIE);
$_REQUEST = qingzzAddslashesDeep($_REQUEST);
}
}
/**
* 递归增加转义字符
*/
function qingzzAddslashesDeep($value) {
$value = is_array($value) ? array_map('qingzzAddslashesDeep', $value) : addslashes($value);
return $value;
}
至于判断是否转义,自己增加一个全局变量就好了~