> php教程 > php手册 > 본문

Php $_POST、$_GET防注入程序

WBOY
풀어 주다: 2016-05-25 16:40:37
원래의
1251명이 탐색했습니다.

这段程序代码是一款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注入*****************/
로그인 후 복사


永久地址:

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿