p防注入函数代码

来源:韦江代博客 责任编辑:栏目编辑 发表时间:2013-07-01 10:28 点击:
在做php程序的时候,大家都比较重视网站安全这块,那么在php中是如何防注入的呢?

php本身自带的一个函数addslaches() 这个函数功能有点弱,不能让人太放心

现在和大家分享一个简单的方法:

新建一个文件保存为checkpostandget.php
然后在每个php文件前加include(“checkpostandget.php“);即可
<?php
  /*************************
  说明:
  判断传递的变量中是否含有非法字符
  如$_POST、$_GET
  功能:
  防注入
  **************************/
  //要过滤的非法字符
  $ArrFiltrate=array("'",";","union");
  //出错后要跳转的url,不填则默认前一页
  $StrGoUrl="";
  //是否存在数组中的值
  function FunStringExist($StrFiltrate,$ArrFiltrate){
  foreach ($ArrFiltrate as $key=>$value){
   if (eregi($value,$StrFiltrate)){
   return true;
   }
   }
  return false;
  }
  //合并$_POST 和 $_GET
  if(function_exists(array_merge)){
   $ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
  }else{
   foreach($HTTP_POST_VARS as $key=>$value){
   $ArrPostAndGet[]=$value;
   }
   foreach($HTTP_GET_VARS as $key=>$value){
   $ArrPostAndGet[]=$value;
   }
  }
  //验证开始
  foreach($ArrPostAndGet as $key=>$value){
   if (FunStringExist($value,$ArrFiltrate)){
   echo "<script language=\"javascript\">alert(\"非法字符\");</script>";
   if (empty($StrGoUrl)){
   echo "<script language=\"javascript\">history.go(-1);</script>";
   }else{
   echo "<script language=\"javascript\">window.location=\"".$StrGoUrl."\";</script>";
   }
   exit;
   }
  }
  ?>

if(function_exists(array_merge)){
$ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
}else{
foreach($HTTP_POST_VARS as $key=>$value){
$ArrPostAndGet[]=$value;
}
foreach($HTTP_GET_VARS as $key=>$value){
$ArrPostAndGet[]=$value;
}
}
改成
foreach($HTTP_POST_VARS as $key=>$value){
$ArrPostAndGet[]=$value;
}
foreach($HTTP_GET_VARS as $key=>$value){
$ArrPostAndGet[]=$value;
}

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1