zoukankan      html  css  js  c++  java
  • php防注入函数代码【转】

    php防注入函数代码
    在做php程序的时候,大家都比较重视网站安全这块,那么在php中是如何防注入的呢?

    php本身自带的一个函数addslaches() 这个函数功能有点弱,不能让人太放心

    现在和大家分享一个简单的方法:

    新建一个文件保存为checkpostandget.php
    然后在每个php文件前加include(“checkpostandget.php“);即可
    <?php
    /*************************
    说明:
    判断传递的变量中是否含有非法字符
    如$_POST、$_GET
    功能:
    防注入
    **************************/
    //要过滤的非法字符  这个过滤的字符 还可以增加
    $ArrFiltrate=array("'",";","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="javascript">alert("非法字符");</script>";
    if (empty($StrGoUrl)){
    echo "<script language="javascript">history.go(-1);</script>";
    }else{
    echo "<script language="javascript">window.location="".$StrGoUrl."";</script>";
    }
    exit;
    }
    }
    ?>

  • 相关阅读:
    单例设计模式
    HashMap 排序
    代理、动态代理
    冒泡排序 、二分查找、快速排序
    Azure powershell 订阅登录管理
    cmdbuild -2.4.3 在Centos7部署
    Zabbix3.0 安装部署
    nginx 一键安装
    通过菜单一键安装mysql
    Rsync同步工具
  • 原文地址:https://www.cnblogs.com/jxcia_Lai/p/1922735.html
Copyright © 2011-2022 走看看