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

Posted artstylemo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

}

以上是关于PHP安全,防止SQL注入(输入过滤,输出转义)的主要内容,如果未能解决你的问题,请参考以下文章

php防止sql注入漏洞都有哪些函数

PHP安全编程

php中防止SQL注入,该如何解决?

php如何防止sql注入

addslashes,htmlspecialchars,htmlentities转换或者转义php特殊字符防止xss攻击以及sql注入

面试题:SQL注入漏洞总结