网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > PHP > PHP安全其它 > php 防注入  

php 防注入

2006-02-27  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

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. ?>
网管联盟bitsCN@com
保存为checkpostandget.php
然后在每个php文件前加include(“checkpostandget.php“);即可

TAGs   注入   value   //   ArrFiltrate   foreach   key   ArrPostAndGet      
 上一篇:CGI安全漏洞资料速查v1.0   下一篇:php 安全
php 防注入 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: