添加禁止IP库,通过修改顶级类来禁止库中存在的IP访问网站,就是俗称的封IP
最近分析网站错误日志,竟然发现有大量高频次出现的IP不间断地在扫描网站,诸如:
[ 2014-04-28T21:55:26+08:00 ] 223.208.36.53 /dede/
ERR: 无法加载控制器:Dede
[ 2014-04-28T09:01:24+08:00 ] 115.29.196.101 /wwwroot.rar
ERR: 无法加载控制器:Wwwroot.rar
[ 2014-04-28T09:01:25+08:00 ] 115.29.196.101 /wwwroot.zip
ERR: 无法加载控制器:Wwwroot.zip
[ 2014-04-28T09:01:25+08:00 ] 115.29.196.101 /wwwroot.7z
ERR: 无法加载控制器:Wwwroot.7z
[ 2014-04-28T09:01:25+08:00 ] 115.29.196.101 /bak.zip
ERR: 无法加载控制器:Bak.zip
[ 2014-04-28T09:01:25+08:00 ] 115.29.196.101 /bak.rar
ERR: 无法加载控制器:Bak.rar
[ 2014-04-28T09:01:25+08:00 ] 115.29.196.101 /bak.7z
ERR: 无法加载控制器:Bak.7z
这些记录清晰地表明有人使用程序在批量尝试搜罗网站后台地址或备份文件,看着很不舒服,虽然程序明显拒绝了请求。
于是萌发了添加禁止IP的功能,把这些IP统统禁止访问网站。
整理思路,觉得可以从顶级类着手,于是找到框架的顶级Controller类,在__construct()方法中增加以下代码: $IP = get_client_ip();<br>
$iplist = M('iplist')->field('ip')->select();<br>
for($i=0;$i<count></count>
$list[$i] = long2ip($iplist[$i]['ip']);<br>
}<br>
if(in_array($IP,$list)){<br>
exit('You don\'t have permission to access!');<br>
}
该代码从数据库中读取限制IP列表,然后用访客IP去判断是否存在数据表中,若存在,则报错,否则不做任何操作。
当然,在顶级类中添加这样的代码或许会对性能有所影响,没关系,直接在各分组Controller中增加__construct()方法,把上面代码写进去也是一样的。不过这样就麻烦些,有多少个控制器就要写多少个。
注意,__construct()方法不能乱用,若在控制器中写,开头必须加上parent::__construct();否则要报错!
其他要做的:
在后台开发功能,管理员可以添加禁止IP,也可以删除。需要十分注意的是,IP一定要从错误日志中提取确定是非法访问的,不要把搜索引擎的IP给禁止了哈!
AD:真正免费,域名+虚机+企业邮箱=0元

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中