发布时间:2020-09-17
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);
}
?>
全站搜索