2019PHP通用SQL过滤方法

  |   2019年4月30日 |  网站建设 |   评论已关闭 |   32

2019PHP通用SQL过滤方法,从2018年年末到2019年年初,很多同行反应网站被中木马了,不知道如何处理,出现这个问题大部分都是因为使用了开源代码导致的这个问题,同时因为品势没有关注官方的漏洞修复,导致了一个网站被攻陷,同服务器网站批量被植入木马的或博彩非法信息的情况。作者也在2019年2月28日发表了关于目前互联网安全的相关文章  点击可阅读详情

优化千万条,安全第一条!防护不到位,站长两行泪!

<?php

//2019PHP通用SQL过滤方法
//IT131建站
//可以屏蔽常规的sql漏洞或注入
//该程序只写的get post过滤 其它类型可以自行添加

/*404页面*/
function html404()
{
    header("http//1.1 404 not found");
    header("status: 404 not found");            
    $htm='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
            <html><head>
            <title>404 Not Found</title>
            </head><body>
            <h1>404 Not Found</h1>
            <p>The requested URL was not found on this server.</p>
            </body></html>';
    exit($htm);
}
/*检查数组*/
function checkstr($str)
{
    /*过滤的自己可以新增*/
    $nosql='eval|select|$_|fputs|vars[|delete|upfile|/think|function=|invokefunction|call_user_func_array';
    $arr=explode('|',$nosql);
    foreach ($arr as $ky)
    {
        if (str_replace($ky,'##',$str)!=$str)
        {
            html404();
        }
    }
}
/*检查字符串*/
function checksql($arr)
{
    foreach ($arr as $key => $row)
    {
        if (is_array($row))
        {
            checksql($row);
        }
        else
        {
            checkstr($row);
        }
    }
}

/*禁止访问入口文件*/
$url=$_SERVER['REQUEST_URI'];
$url=strtolower($url);
if ($url!=str_replace('index.php','',$url) || $url!=str_replace('api.php','',$url))
{
    html404();
}
checkstr($url);

/*post get检测*/
$post=$_POST;
$get=$_GET;
if ($post)
{
    checksql($post);
}
if ($get)
{
    checksql($get);
}
?>

有任何问题都可以加我微信 linwenzhi1314,帮你解答,如果你觉得写的好,可以下面支持一下
转载请注明出处:
https://www.it131.org/7016.html

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦