当前位置:首页 > PHP教程 > php应用 > 列表

php 过滤特殊字符及sql防注入代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-25 14:05:59 浏览: 评论:0 
  1. <?php 
  2. //方法一 
  3. //过滤',",sql语名 
  4. addslashes(); 
  5.  
  6. //方法二,去除所有html标签 
  7.  
  8. strip_tags(); 
  9.  
  10. //方法三过滤可能产生代码 
  11.  
  12. function php_sava($str)  
  13. {  
  14.     $farr = array(  
  15.         "/s+/",                                                                                           
  16.         "/<(/?)(script|i?frame|style|html|body|title|link|meta|?|%)([^>]*?)>/isU",    
  17.         "/(<[^>]*)on[a-zA-Z]+s*=([^>]*>)/isU",                                       
  18.        
  19.    );  
  20.    $tarr = array(  
  21.         " ",  
  22.         "<\1\2\3>",           //如果要直接清除不安全的标签,这里可以留空  
  23.         "\1\2",  
  24.    ); 
  25.  
  26.   $str = preg_replace( $farr,$tarr,$str);  
  27.    return $str;  
  28.  
  29. //php sql防注入代码 
  30.  
  31. class sqlin 
  32.  
  33. //dowith_sql($value) 
  34. function dowith_sql($str
  35.    $str = str_replace("and","",$str); 
  36.    $str = str_replace("execute","",$str); 
  37.    $str = str_replace("update","",$str); 
  38.    $str = str_replace("count","",$str); 
  39.    $str = str_replace("chr","",$str); 
  40.    $str = str_replace("mid","",$str); 
  41.    $str = str_replace("master","",$str); 
  42.    $str = str_replace("truncate","",$str); 
  43.    $str = str_replace("char","",$str); 
  44.    $str = str_replace("declare","",$str); 
  45.    $str = str_replace("select","",$str); 
  46.    $str = str_replace("create","",$str); 
  47.    $str = str_replace("delete","",$str); 
  48.    $str = str_replace("insert","",$str); 
  49.    $str = str_replace("'","",$str); 
  50.    $str = str_replace(""","",$str); 
  51.    $str = str_replace(" ","",$str); 
  52.    $str = str_replace("or","",$str); 
  53.    $str = str_replace("=","",$str); 
  54.    $str = str_replace("%20","",$str); 
  55.    //echo $str; 
  56.    return $str
  57. //aticle()防SQL注入函数//php教程 
  58. function sqlin() 
  59.    foreach ($_GET as $key=>$value
  60.    { 
  61.        $_GET[$key]=$this->dowith_sql($value); 
  62.    } 
  63.    foreach ($_POST as $key=>$value
  64.    { 
  65.        $_POST[$key]=$this->dowith_sql($value); 
  66.    }//开源代码phpfensi.com 
  67.  
  68. $dbsql=new sqlin(); 
  69. ?> 

 

使用方式:将以上代码复制新建一个sqlin.php的文件,然后包含在有GET或者POST数据接收的页面.

原理:将所有的SQL关键字替换为空,本代码在留言本中不能使用,若要在留言本中使用请替换其中的.

  1. $str = str_replace("and","",$str); 
  2. //到: 
  3. $str = str_replace("%20","",$str);//的代码为: 
  4. $str = str_replace("and","&#97;nd",$str); 
  5. $str = str_replace("execute","&#101;xecute",$str); 
  6. $str = str_replace("update","&#117;pdate",$str); 
  7. $str = str_replace("count","&#99;ount",$str); 
  8. $str = str_replace("chr","&#99;hr",$str); 
  9. $str = str_replace("mid","&#109;id",$str); 
  10. $str = str_replace("master","&#109;aster",$str); 
  11. $str = str_replace("truncate","&#116;runcate",$str); 
  12. $str = str_replace("char","&#99;har",$str); 
  13. $str = str_replace("declare","&#100;eclare",$str); 
  14. $str = str_replace("select","&#115;elect",$str); 
  15. $str = str_replace("create","&#99;reate",$str); 
  16. $str = str_replace("delete","&#100;elete",$str); 
  17. $str = str_replace("insert","&#105;nsert",$str); 
  18. $str = str_replace("'","&#39;",$str); 
  19. $str = str_replace(""","&#34;",$str); 

Tags: php 过滤字符 sql防注入

分享到: