添加禁止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 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

WebStorm Mac 버전
유용한 JavaScript 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
