ホームページ  >  記事  >  php教程  >  Php $_POST、$_GET防注入程序

Php $_POST、$_GET防注入程序

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

这段程序代码是一款php $_POST、$_GET防注入程序,以前我们也写过很多sql防注入程序,下面来看看这款防注入的php代码吧.

<?php
/*************************
说明: 
判断传递的变量中是否含有非法字符 
如$_POST、$_GET 
功能: 
防注入 
*************************/
//要过滤的非法字符
//开源代码phprm.com
$ArrFiltrate = array(
    "&#39;",
    "or",
    "and",
    "union",
    "where"
);
//出错后要跳转的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=&#39;javascript教程&#39;>alert(&#39;传递的信息中不得包含{&#39;,or,and,union}等非法字符请您把他们换成{&#39;,OR,AND,UNION}&#39;);</script>";
        if (emptyempty($StrGoUrl)) {
            echo "<script language=&#39;javascript&#39;>history.go(-1);</script>";
        } else {
            echo "<script language=&#39;javascript&#39;>window.location=&#39;" . $StrGoUrl . "&#39;;</script>";
        }
        exit;
    }
}
/***************结束防止PHP注入*****************/


永久地址:

转载随意~请带上教程地址吧^^

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