PHP安全,防止SQL注入(输入过滤,输出转义)
(1)magic_quotes_gpc选项打开,在这种情况下所有的客户端GET和POST的数据都会自动进行addslashes处理
(2)防止对数字值的SQL注入,如用intval()等函数进行处理
(3)mysql_real_escape_string( string ) addslashes(string)
以上是利用PHP自带函数来防止SQL注入
下面提供一个例子,是在一个页面实现过滤,然后,需要用到的页面引入代码即可
#整站防注入
if (@magic_quotes_gpc()) {
$_GET = sec($_GET);
$_POST = sec($_POST);
$_COOKIE = sec($_COOKIE);
$_FILES = sec($_FILES);
}
#统一处理输入变量
function sec($array) {
//如果是数组,遍历数组,递归调用
if (is_array($array)) {
foreach($array as $k => $v) {
$array[$k] = sec($v);
}
} else if (is_string($array)) {
//使用addslashes函数处理
$array = addslashes($array);
} else if (is_numeric($array)) {
$array = intval($array);
}
return $array;
}