2022
我们一起努力

php如何预防sql注入漏洞

php预防sql注入漏洞的方法:

利用magic_quotes_gpc指令或它的搭挡addslashes()函数进行过滤,例如:

<?php

//php防注入和XSS攻击通用过滤

$_GET     && SafeFilter($_GET);

$_POST    && SafeFilter($_POST);

$_COOKIE  && SafeFilter($_COOKIE);

  

function SafeFilter (&$arr) 

{

   $ra=Array('/([x00-x08,x0b-x0c,x0e-x19])/','/script/','/javascript/','/vbscript/','/expression/','/applet/'

   ,'/meta/','/xml/','/blink/','/link/','/style/','/embed/','/object/','/frame/','/layer/','/title/','/bgsound/'

   ,'/base/','/onload/','/onunload/','/onchange/','/onsubmit/','/onreset/','/onselect/','/onblur/','/onfocus/',

   '/onabort/','/onkeydown/','/onkeypress/','/onkeyup/','/onclick/','/ondblclick/','/onmousedown/','/onmousemove/'

   ,'/onmouseout/','/onmouseover/','/onmouseup/','/onunload/');

     

   if (is_array($arr))

   {

     foreach ($arr as $key => $value) 

     {

        if (!is_array($value))

        {

          if (!get_magic_quotes_gpc())  //不对magic_quotes_gpc转义过的字符使用addslashes(),避免双重转义。

          {

             $value = addslashes($value); //给单引号(')、双引号(")、反斜线()与 NUL(NULL 字符)

             加上反斜线转义

          }

          $value   = preg_replace($ra,'',$value);     //删除非打印字符,粗暴式过滤xss可疑字符串

          $arr[$key] = htmlentities(strip_tags($value)); //去除HTML和PHP标记并转换为HTML实体

        }

        else

        {

          SafeFilter($arr[$key]);

        }

     }

   }

}

?>

赞(0)
文章名称:《php如何预防sql注入漏洞》
文章链接:https://www.fzvps.com/71565.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!