下一篇 » « 上一篇

php 防注入

作者:爱好者    时间:2008-01-22    来源:php之家    点击:35294    本文共1篇文章 字体:[ ]
标签:php安全

php 防注入

CODE
  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.        $ArrPostAndGet[]=$value;
  28.    }
  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(\"非法字符\");</script>";
  37.        if (empty($StrGoUrl)){
  38.        echo "<script language=\"javascript\">history.go(-1);</script>";
  39.        }else{
  40.        echo "<script language=\"javascript\">window.location=\"".$StrGoUrl."\";</script>";
  41.        }
  42.        exit;
  43.    }
  44. }
  45. ?>

www.444p.com


保存为checkpostandget.php
然后在每个php文件前加include(“checkpostandget.php“);即可
发表评论
密码: (游客不需要密码)
记住我【Alt+S 或 Ctrl+Enter 快速提交】

搜索工具


《PHP教程》点击排行