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