<?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; } } ?>
保存为checkpostandget.php 然后在每个php文件前加include(“checkpostandget.php“);即可 
|