PHP 防范IP攻击

<?php
//查询禁止IP
$ip =$_SERVER[‘REMOTE_ADDR‘];
$fileht=".htaccess2";
if(!file_exists($fileht))file_put_contents($fileht,"");
$filehtarr[email protected]file($fileht);
if(in_array($ip."\r\n",$filehtarr))die("Warning:"."<br>"."Your IP address are forbided by some reason, IF you have any question Pls emill to [email protected]!");

//加入禁止IP
$time=time();
$fileforbid="log/forbidchk.dat";
if(file_exists($fileforbid))
{ if($time-filemtime($fileforbid)>60)unlink($fileforbid);
else{
$fileforbidarr[email protected]file($fileforbid);
if($ip==substr($fileforbidarr[0],0,strlen($ip)))
{
if($time-substr($fileforbidarr[1],0,strlen($time))>600)unlink($fileforbid);
elseif($fileforbidarr[2]>600){file_put_contents($fileht,$ip."\r\n",FILE_APPEND);unlink($fileforbid);}
else{$fileforbidarr[2]++;file_put_contents($fileforbid,$fileforbidarr);}
}
}
}
//防刷新
$str="";
$file="log/ipdate.dat";
if(!file_exists("log")&&!is_dir("log"))mkdir("log",0777);
if(!file_exists($file))file_put_contents($file,"");
$allowTime = 120;//防刷新时间
$allowNum=10;//防刷新次数
$uri=$_SERVER[‘REQUEST_URI‘];
$checkip=md5($ip);
$checkuri=md5($uri);
$yesno=true;
$ipdate[email protected]file($file);
foreach($ipdate as $k=>$v)
{ $iptem=substr($v,0,32);
$uritem=substr($v,32,32);
$timetem=substr($v,64,10);
$numtem=substr($v,74);
if($time-$timetem<$allowTime){
if($iptem!=$checkip)$str.=$v;
else{
$yesno=false;
if($uritem!=$checkuri)$str.=$iptem.$checkuri.$time."1\r\n";
elseif($numtem<$allowNum)$str.=$iptem.$uritem.$timetem.($numtem+1)."\r\n";
else
{
if(!file_exists($fileforbid)){$addforbidarr=array($ip."\r\n",time()."\r\n",1);file_put_contents($fileforbid,$addforbidarr);}
file_put_contents("log/forbided_ip.log",$ip."--".date("Y-m-d H:i:s",time())."--".$uri."\r\n",FILE_APPEND);
$timepass=$timetem+$allowTime-$time;
die("Warning:"."<br>"."Sorry,you are forbided by refreshing frequently too much, Pls wait for ".$timepass." seconds to continue!");
}
}
}
}
if($yesno) $str.=$checkip.$checkuri.$time."1\r\n";
file_put_contents($file,$str);
?> 
时间: 2024-10-06 03:37:23

PHP 防范IP攻击的相关文章

XSS 防范XSS 攻击的措施

首先看看跨站脚本漏洞的成因,所谓跨站脚本漏洞其实就是Html的注入问题,恶意用户的输入没有经过严格的控制进入了数据库最终显示给来访的用户,导致可以在来访用户的浏览器里以浏览用户的身份执行HTml代码,数据流程如下: 恶意用户的Html输入————>web程序————>进入数据库————>web程序————>用户浏览器 这里给出一些防范XSS 攻击的措施.必须说明的是,对于XSS 攻击,并不像SQL Injection 那样可以有一劳永逸的解决方案——只需要grep 一下所有的sql

如何防范ddos攻击

现如今网络安全是企业发展的一大重要问题,目前最让企业头疼也是最无力的就是网络安全攻击中的DDOS攻击,这种攻击通过僵尸网络无脑的进行恶意攻击,对企业造成了极大的损失,基本上每个企业都会因为恶意竞争或者勒索而受过ddos攻击,那么如何防范ddos攻击呢? 一.理解ddos攻击原理     ddos攻击也就是所说的分布式拒绝服务攻击,攻击者通过手中控制的僵尸网络对目标机器进行快速大批量的网络访问, 1.最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应.这

CC攻击原理及防范方法和如何防范CC攻击

一. CC攻击的原理: CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃.CC主要是用来消耗服务器资源的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止. 二.CC攻击的种类:  CC攻击的种类有三种,直接攻

交换机防范欺骗攻击

恶意用户可能会发送伪造的信息,骗取交换机或主机将不可靠的机器作为网关.攻击者的目标是成为中间人,让无判断的用户将其作为路由器,向其发送分组,这样攻击者可以在将发送给他的分组正常转发前,收集其中的信息. 1)DHCP探测 假定攻击者在客户PC所在的子网的一台机器上运行伪造的DHCP服务器.当客户广播其DHCP请求时,伪造服务器将发送精心伪造的DHCP应答,将其IP地址作为默认网关. 客户收到应答后,将开始使用伪造的网关地址.前往子网外的分组将首先经过攻击者的机器.攻击者可能将分组转发到正确的目的地

Spring3.x通过配置来防范csrf攻击

1. [代码]CsrfTokenManager 用于管理csrfToken相关 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 packagecom.uncle5.pubrub.web.common; importjava.util.UUID; importjavax.servlet.http.HttpServletRequest;

[Javascript]在javascript端防范XSS攻击

在任何被扫描出来有XSS风险的对象,代入类似下列语法,把恶意的字符串去除掉: 这边的情况是a.text会接收到网页上来自使用者的输入的任何文字,怕a.text里面会有恶意的javascript a.text = a.text.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(///g, '/'); 参考数据: XSS prevention and .

配置 Haproxy 防范 DDOS 攻击

作为 load balancer, Happroxy 常常作为服务器的前端,向外界用户提供服务的入口,如果能在入口处处理安全相关问题,将极大简化后端的设计.事实上,Haproxy 不仅仅是一款开源出色的 load balancer(四层和七层),而且在安全上也相当出色.它配合内核 IP/TCP 协议栈,能够较好的抵抗 DOS, DDOS 攻击,还能通过限制单个 IP 的连接数和请求速率等,防止用户的恶意行为. TCP syn flood attacks 通过向服务器发送大量的 TCP syn 分

奥联云安全接入防范BadTunnel攻击

使用VPN来实现基于互联网办公已经广泛普及.此场景下鉴别资源使用人的身份.保护使用者隐私信息.应用系统的安全性.数据的真实性等问题尤为重要.如何保障信息系统不受恶意攻击和入侵,已成为各种应用系统信息化发展所必需考虑和解决的重要问题.传统IPsec/SSL VPN在这样的场景下面临各种挑战.最近披露的Windows的BadTunnel漏洞充分体现了传统安全接入技术的弱点. BadTunnel是Windows史上影响范围最广泛的漏洞,从WIN95到WIN10都受影响,尤其是使用微软不再提供安全更新的

工作中的一次linux防范ddos攻击

在上班路上,看到手机短信里面发送报警信息,一台服务器凌晨4点下线了.匆忙到工位,检查机器果然下线了,报告老板,然后联系机房.大概十分钟后机房回复,机器受到攻击,机房切断了Ip. 机器用电信联通双网络,既然电信ip被封,那就用联通的ip进入机器. 要素一:机器的硬件信息以及Ip信息平时一定要保管好.免得有问题了还要去问机房,白白浪费很多时间. 进入机器后top等发现机器硬件性能ok,再用iptraf,流量也不高(当然不高,主ip都被切了). 机器跑的是网站业务,所以要找问题,去日志文件里面找访问量