PHP防注入安全代码

来源:互联网 发布:matlab 矩阵 列向量 编辑:程序博客网 时间:2024/04/30 07:49



/*************************    说明:    判断传递的变量中是否含有非法字符    如$_POST、$_GET    功能:防注入    **************************/   <?php     //要过滤的非法字符     $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 (emptyempty($StrGoUrl)){         echo "<script language=\"javascript\">history.go(-1);</script>";         }else{         echo "<script language=\"javascript\">window.location=\"".$StrGoUrl."\";</script>";         }         exit;       }     }     ?> 


/* 过滤所有GET过来变量 */    foreach ($_GET as $get_key=>$get_var)     {     if (is_numeric($get_var)) {       $get[strtolower($get_key)] = get_int($get_var);     } else {       $get[strtolower($get_key)] = get_str($get_var);     }     }     /* 过滤所有POST过来的变量 */    foreach ($_POST as $post_key=>$post_var)     {     if (is_numeric($post_var)) {       $post[strtolower($post_key)] = get_int($post_var);     } else {       $post[strtolower($post_key)] = get_str($post_var);     }     }     /* 过滤函数 */    //整型过滤函数     function get_int($number)     {         return intval($number);     }     //字符串型过滤函数     function get_str($string)     {         if (!get_magic_quotes_gpc()) {     return addslashes($string);         }         return $string;     }








0 0
原创粉丝点击