ホームページ  >  記事  >  php教程  >  经典php防注入函数代码

经典php防注入函数代码

WBOY
WBOYオリジナル
2016-05-25 16:40:531294ブラウズ

<?php
/*************************
    说明:  
    判断传递的变量中是否含有非法字符  
    如$_post、$_get  
    功能:  
    防注入  
    **************************/
//要过滤的非法字符  这个过滤的字符 还可以增加
$arrfiltrate = array(
    "&#39;",
    ";",
    "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="网页特效">alert("非法字符");</script>";
        if (emptyempty($strgourl)) {
            echo "<script language="javascript">history.go(-1);</script>";
        } else {
            echo "<script language="javascript">window.location="".$strgourl."";</script>";
        }
        exit;
    }
}


本文地址:

转载随意,但请附上文章地址:-)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。