防止xss,sql攻击函数

Posted 云龙笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防止xss,sql攻击函数相关的知识,希望对你有一定的参考价值。

<?php
//php防注入和XSS攻击通用过滤. 
//by qq:831937
$_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]);
        }
     }
   }
}
?>

 

以上是关于防止xss,sql攻击函数的主要内容,如果未能解决你的问题,请参考以下文章

mysql-防止XSS攻击

开发:防止xss,sql注入,clickjacking攻击的工具类编写

XSS过滤JAVA过滤器filter 防止常见SQL注入

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

PHP如何防止XSS攻击

node防止sql注入 xss攻击和密码加密