• 技术文章 >后端开发 >php教程

    简单的php防注入代码

    怪我咯怪我咯2017-07-12 15:16:57原创3475
    所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.本篇文章主要两种方法php防注入的方法,首先请把以下代码保存为safe.php放在网站根目录下,然后在每个php文件前加include(“/safe.php“);即可 :

    php防注入代码方法一:

    <?php 
    //要过滤的非法字符 
    $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 (emptyempty($StrGoUrl)){ 
    echo “<script language=\”javascript\”>history.go(-1);</script>”; 
    }else{ 
    echo “<script language=\”javascript\”>window.location=\””.$StrGoUrl.”\”;</script>”; 
    } 
    exit; 
    } 
    } 
    ?>

    php防注入代码方法二:

    /* 过滤所有GET过来变量 */ 
    foreach ($_GET as $get_key=>$get_var) 
    { 
    if (is_numeric($get_var)) { 
    $get[strtolower($get_key)] = get_int($get_var); 
    } else { 
    $get[strtolower($get_key)] = get_str($get_var); 
    } 
    } 
    /* 过滤所有POST过来的变量 */ 
    foreach ($_POST as $post_key=>$post_var) 
    { 
    if (is_numeric($post_var)) { 
    $post[strtolower($post_key)] = get_int($post_var); 
    } else { 
    $post[strtolower($post_key)] = get_str($post_var); 
    } 
    } 
    /* 过滤函数 */ 
    //整型过滤函数 
    function get_int($number) 
    { 
    return intval($number); 
    } 
    //字符串型过滤函数 
    function get_str($string) 
    { 
    if (!get_magic_quotes_gpc()) { 
    return addslashes($string); 
    } 
    return $string; 
    }

    php入门到就业线上直播课:查看学习

    以上就是简单的php防注入代码的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php 代码 注入
    上一篇:php 判断变量是否为0的方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 基于PHP的简单采集数据入库程序_PHP• PHP中读取文件的8种方法和代码实例_PHP• ThinkPHP之import方法实例详解_PHP• PHP实现的连贯操作、链式操作实例_PHP• PHP5中Cookie与 Session使用详解_PHP
    1/1

    PHP中文网