這段程序代碼是一款php $_POST、$_GET防注入程序,以前我們也寫過(guò)很多sql防注入程序,下面來(lái)看看這款防注入的php代碼吧.
- <?php
- /*************************
- 說(shuō)明:
- 判斷傳遞的變量中是否含有非法字符
- 如$_POST、$_GET
- 功能:
- 防注入
- *************************/
- //要過(guò)濾的非法字符
- //開(kāi)源代碼Vevb.com
- $ArrFiltrate=array("'","or","and","union","where");
- //出錯(cuò)后要跳轉(zhuǎn)的url,不填則默認(rèn)前一頁(yè)
- $StrGoUrl="";
- //是否存在數(shù)組中的值
- 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;
- }
- }
- //驗(yàn)證開(kāi)始
- foreach($ArrPostAndGet as $key=>$value){
- if (FunStringExist($value,$ArrFiltrate)){
- echo "<script language='javascript教程'>alert('傳遞的信息中不得包含{',or,and,union}等非法字符請(qǐng)您把他們換成{‘,OR,AND,UNION}');</script>";
- if (emptyempty($StrGoUrl)){
- echo "<script language='javascript'>history.go(-1);</script>";
- }else{
- echo "<script language='javascript'>window.location='".$StrGoUrl."';</script>";
- }
- exit;
- }
- }
- /***************結(jié)束防止PHP注入*****************/
- ?>
新聞熱點(diǎn)
疑難解答