>  기사  >  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으로 문의하세요.