PHP安全,防止SQL注入(输入过滤,输出转义)

时间:2022-04-12 14:10:25

 

(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;

}