php 防注入
修改时间:[2010/07/28 00:29] 阅读次数:[1427] 发表者:[起缘]
CODE |
- <?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“);即可
|