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

Php $_POST、$_GET防注入程序

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-25 13:27:42 浏览: 评论:0 

这段程序代码是一款php $_POST、$_GET防注入程序,以前我们也写过很多sql防注入程序,下面来看看这款防注入的php代码吧.

  1. <?php 
  2. /************************* 
  3. 说明: 
  4. 判断传递的变量中是否含有非法字符 
  5.  
  6. 如$_POST、$_GET 
  7. 功能: 
  8. 防注入 
  9. *************************/ 
  10. //要过滤的非法字符 
  11. //开源代码phpfensi.com 
  12. $ArrFiltrate=array("'","or","and","union","where"); 
  13. //出错后要跳转的url,不填则默认前一页 
  14. $StrGoUrl=""
  15. //是否存在数组中的值 
  16. function FunStringExist($StrFiltrate,$ArrFiltrate){ 
  17. foreach ($ArrFiltrate as $key=>$value){ 
  18. if (eregi($value,$StrFiltrate)){ 
  19.   return true; 
  20. return false; 
  21.  
  22. //合并$_POST 和 $_GET 
  23.  
  24. if(function_exists(array_merge)){ 
  25. $ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS); 
  26. }else
  27. foreach($HTTP_POST_VARS as $key=>$value){ 
  28. $ArrPostAndGet[]=$value
  29. foreach($HTTP_GET_VARS as $key=>$value){ 
  30. $ArrPostAndGet[]=$value
  31.  
  32. //验证开始 
  33.  
  34. foreach($ArrPostAndGet as $key=>$value){ 
  35. if (FunStringExist($value,$ArrFiltrate)){ 
  36. echo "<script language='javascript教程'>alert('传递的信息中不得包含{',or,and,union}等非法字符请您把他们换成{‘,OR,AND,UNION}');</script>"
  37. if (emptyempty($StrGoUrl)){ 
  38. echo "<script language='javascript'>history.go(-1);</script>"
  39. }else
  40. echo "<script language='javascript'>window.location='".$StrGoUrl."';</script>"
  41. exit
  42. } 
  43. /***************结束防止PHP注入*****************/ 
  44. ?> 

Tags: $_POST $_GET 防注入程序

分享到: