PHP&MySQL——防止SQL注入-代码片段

37 篇文章 1 订阅
<?php
/************************* 
说明: 
判断传递的变量中是否含有非法字符 
如$_POST、$_GET 
功能: 防注入 
*************************/

 //要过滤的非法字符 

$ArrFiltrate=array("'","%","#","<",">","or","and","union","where","select","update","chr","delete","%20from",";","insert","mid","master","set","chr(37)","iframe","script","javascript","vbscript","exec"); 
 //出错后要跳转的url,不填则默认前一页 
$StrGoUrl="Err.php"; 
 //是否存在数组中的值 
function FunStringExist($StrFiltrate,$ArrFiltrate){ 
    foreach ($ArrFiltrate as $key=>$value){ 
        echo "<script language='javascript'>console.log('正在判断表单 ".$StrFiltrate." 的值中是否存在".$value."子串')</script>";
        if (substr_count($StrFiltrate,$value)>=1){ 
            return true; 
        } 
    } 
    return false; 
} 
 //合并$_POST 和 $_GET 
$ArrPostAndGet=array();
foreach($_POST as $key=>$value){ 
    $ArrPostAndGet[$key]=$value; 
} 
foreach($_GET as $key=>$value){ 
    $ArrPostAndGet[$key]=$value;
} 
//验证开始 
foreach($ArrPostAndGet as $key=>$value){ 
    echo "<script language='javascript'>console.log('正在检验表单 ".$key." 的值')</script>"; 
    if (FunStringExist($value,$ArrFiltrate)){ 
        echo "<script language='javascript'>alert('出错了!表单 ".$key." 的值中包含非法字符串!\\n\\n请不要在表单中出现: % & * # ( ) 等非法字符!');</script>"; 
        if (empty($StrGoUrl)){ 
            echo "<script language='javascript'>history.go(-1);</script>"; 
        }else{ 
            echo "<script language='javascript'>window.location='".$StrGoUrl."';</script>"; 
        } 
        exit; 
    } 
} 
 /***************结束防止PHP注入*****************/

 ?>

参考文章

https://www.cnblogs.com/syx9527/p/3988472.html

https://zixuephp.net/article-130.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starzkg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值