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

经典php防注入函数代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-25 08:49:53 浏览: 评论:0 
  1. <?php 
  2. /*************************  
  3. 说明:  
  4. 判断传递的变量中是否含有非法字符  
  5. 如$_post、$_get  
  6. 功能:  
  7. 防注入  
  8. **************************/  
  9. //要过滤的非法字符  这个过滤的字符 还可以增加  
  10. $arrfiltrate=array("'",";","union");  
  11. //出错后要跳转的url,不填则默认前一页  
  12. $strgourl="";  
  13. //是否存在数组中的值  
  14. function funstringexist($strfiltrate,$arrfiltrate){  
  15. foreach ($arrfiltrate as $key=>$value){  
  16. if (eregi($value,$strfiltrate)){  
  17. return true;  
  18. }  
  19. }  
  20. return false;  
  21.  
  22. //合并$_post 和 $_get  
  23. if(function_exists(array_merge)){  
  24. $arrpostandget=array_merge($http_post_vars,$http_get_vars);  
  25. }else{  
  26. foreach($http_post_vars as $key=>$value){  
  27. //开源代码phpfensi.com 
  28. $arrpostandget[]=$value;  
  29. }  
  30. foreach($http_get_vars as $key=>$value){  
  31. $arrpostandget[]=$value;  
  32. }  
  33.  
  34. //验证开始  
  35. foreach($arrpostandget as $key=>$value){  
  36. if (funstringexist($value,$arrfiltrate)){  
  37. echo "<script language="网页特效">alert("非法字符");</script>";  
  38. if (emptyempty($strgourl)){  
  39. echo "<script language="javascript">history.go(-1);</script>";  
  40. }else{  
  41. echo "<script language="javascript">window.location="".$strgourl."";</script>";  
  42. }  
  43. exit;  
  44. }  
  45. }  
  46. ?> 

Tags: PHP防注入类 PHP注入攻击

分享到: