


Detaillierte Erläuterung der DoS-Angriffsanalyse und Abwehr von 12 Zeilen JS-Code
Es gibt einen 12-zeiligen JavaScript-Code, der Firefox-, Chrome- und Safari-Browser zum Absturz bringen und auch zum Neustart des iPhone und zum Absturz von Android führen kann. Der Autor dieses Artikels hat diese 12 analysiert und interpretiert Wir stellen auch entsprechende Verteidigungsmethoden vor, und jeder ist herzlich eingeladen, diese gemeinsam zu diskutieren. Hier ist ein Artikel über diese 12 Zeilen JS-Code: Wie bringen diese 12 Zeilen Code den Browser zum Explodieren?
Ajax und pjax
Ajax ist „Asynchronous Javascript And XML“ (Asynchronous JavaScript and XML), eine Technologie zur Erstellung schneller dynamischer Webseiten. Ajax ermöglicht die asynchrone Aktualisierung von Webseiten, indem im Hintergrund eine kleine Datenmenge mit dem Server ausgetauscht wird. Das bedeutet, dass Teile einer Webseite aktualisiert werden können, ohne dass die gesamte Webseite neu geladen werden muss.
Ajax-Anwendungen können jedoch auch andere Probleme verursachen, die leicht dazu führen können, dass der Browser nicht in der Lage ist, sich vorwärts und rückwärts zu bewegen. Dies ist ein sehr problematisches Problem, und Entwickler müssen ihre Arbeitsbelastung erhöhen (z. B. durch eine versteckte Funktion). iframe oder Ändern des Standort-Hash-Werts und andere Methoden), um das Problem zu lösen.
Um die durch traditionelles Ajax verursachten Probleme zu lösen, wurde in HTML5 eine neue API eingeführt: History.pushState. Nach der Kombination mit Ajax hat sie einen neuen Namen namens pjax. Es handelt sich um eine neue Technologie, die auf Ajax+history.pushState basiert. Diese Technologie kann den Inhalt der Seite ohne Aktualisierung ändern und die URL der Seite ändern. pjax ist eine Kapselung von Ajax+pushState und unterstützt mehrere Funktionen wie lokale Speicherung und Animation. Unterstützt derzeit jquery, qwrap, kissy und andere Versionen.
HTML5.history.pushState
HTML5 kann den Browserverlauf verwalten und die URL der aktuellen Seite über die Schnittstellen pushState und replaceState ändern.
pushState fügt die angegebene URL zum Browserverlauf hinzu und speichert den aktuellen Verlaufspunkt. replaceState ersetzt die aktuelle URL durch die angegebene URL. Gleichzeitig funktionieren diese Methoden mit dem window.onpostate-Ereignis.
history.pushState(data, title, url): Wenn das onpopstate-Ereignis ausgelöst wird, wird ein Datensatz oben im Verlaufsstapel hinzugefügt Wird im Allgemeinen von allen aktuellen Browsern ignoriert. Dieser Parameter ist die Seitenadresse, optional, und der Standardwert ist die aktuelle Seitenadresse. Spezifische Details:
Status: Das Objekt ist ein JavaScript-Statusobjekt, ein zusätzliches Objekt, das historische Punkte aufzeichnet, und kann leer sein. Es hängt mit der neuen Verlaufsentität zusammen, die von der Methode pushState() erstellt wurde. Wird zum Speichern von Informationen über den Eintrag verwendet, den Sie in den Verlauf einfügen möchten.
Titel: Alle Browser ignorieren diesen Parameter im Allgemeinen, obwohl er möglicherweise in Zukunft verwendet wird. Der sicherste Weg, es jetzt zu verwenden, besteht darin, eine leere Zeichenfolge zu übergeben, um zukünftige Änderungen zu verhindern, oder Sie können einen kurzen Titel übergeben, um den Status darzustellen.
URL: Dieser Parameter wird verwendet, um die URL der neuen Verlaufsentität zu übergeben. Die neue URL muss sich in derselben Domäne wie die vorhandene URL befinden, andernfalls löst pushState() eine Ausnahme aus. Dieser Parameter ist optional, wenn er leer bleibt, wird er auf die aktuelle URL des Dokuments gesetzt.
Zwölf Zeilen Codeanalyse
Das Bild oben zeigt die zwölf Zeilen Code. Der entscheidende Punkt ist die Schleife für die gesamte URL: History.pushState(0,0,total); Die URL, eine 1.000.000-malige Schleife und das ständige Hinzufügen neuer Datensätze zum Verlaufsstapel führt zu einer übermäßigen CPU- und Speicherauslastung, stürzt die Browser Firefox, Chrome und Safari ab und verursacht auch einen Neustart des iPhones.
Analyseergebnisse
Persönliche Messung in einer virtuellen XP-Maschine (i7 Single Core 3,4 G, 512 Speicher):
Wenn die Anzahl der Schleifen oben ist 10 Wenn der Wert über 10.000 liegt, erreicht die CPU- und Speicherauslastung sofort 100 % und stürzt dann ab und friert ein Die CPU- und Speicherauslastung wird innerhalb von 20 Sekunden schrittweise auf 100 % erhöht und stürzt dann ab.
Als die Anzahl der oben genannten Zyklen auf etwa 500 reduziert wurde, stieg die CPU-Auslastung allmählich an 100 % und dann wieder ein stabiler Zustand, und die Speichernutzung stieg von etwa 130 MB auf etwa 230 MB. Nach dem Öffnen der Seite 192.168.56.106/12.html änderte sich auch der Link in der Adressleiste zu: 192.168. 56.106/0123456789101112131415161718192021...49449549649749 8499
Es ist ersichtlich, dass beim Hinzufügen von Datensätzen zum Verlaufsstapel durch die Schleife die Seite an der neuen Sprungadresse aktualisiert wird ist eine „Pseudoadresse“, die sich in der Schleife ansammelt. Wenn diese Länge den Grenzwert überschreitet, hängt die Wirkung und Effizienz des Angriffs vollständig von der Anzahl der Schleifen und der Hardwarekonfiguration des Ziels ab.
Verwandte Abwehrmaßnahmen
Ich glaube, das Sicherheitsbewusstsein aller ist bereits sehr stark, aber Sie müssen trotzdem Alarm schlagen und keinen Links, Anhängen oder E-Mails vertrauen, die Ihnen von Fremden gesendet werden in irgendeiner Weise, Bilder und andere Informationen, natürlich schließt es die Streiche von guten und schlechten Freunden nicht aus, also Freunde, denkt daran, oft Strg+S zu drücken, sonst werdet ihr sehr deprimiert sein, wenn euer Computer abstürzt.
Das Internet war seit seiner Geburt Hackerangriffen ausgesetzt. Frühe Hackerangriffe dienten mehr oder weniger dem Zweck technischer Experimente und der Angeberei Anzahl der Nutzer. Mit der rasanten Zunahme der Zahl hat sich auch die Häufigkeit von Hackerangriffen entsprechend weiterentwickelt, und es ist nach und nach eine schwarze Industriekette zum Zweck der illegalen Erlangung wirtschaftlicher Vorteile entstanden. Das technische Niveau des Internet-Sicherheitsschutzes schreitet sprunghaft voran. Angriffe und Verteidigung finden im Internet-Zeitalter jede Minute und Sekunde statt.
Natürlich ist der Schutz der Netzwerksicherheit von Technologie und Bewusstsein abhängig. Es reicht nicht aus, sich ausschließlich auf die Produkte und Dienstleistungen von Netzwerksicherheitsherstellern zu verlassen Sicherheit Der Bewusstseinszuwachs ist nicht zu übersehen.
Zum Beispiel: Achten Sie auf die Verwaltung persönlicher Passwörter, achten Sie auf den Schutz der Privatsphäre, greifen Sie nicht so leicht auf öffentliches WLAN zu, vertrauen Sie nicht so leicht Links oder Dateien von unbekannten/vertrauten Freunden usw., Achten Sie auf die Sicherheit beim mobilen Bezahlen und verhindern Sie, dass Ihr Gerät „Streifen“ usw. aufweist.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der DoS-Angriffsanalyse und Abwehr von 12 Zeilen JS-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Verwendung: In JavaScript wird die Methode insertBefore() verwendet, um einen neuen Knoten in den DOM-Baum einzufügen. Diese Methode erfordert zwei Parameter: den neuen Knoten, der eingefügt werden soll, und den Referenzknoten (d. h. den Knoten, an dem der neue Knoten eingefügt wird).

JavaScript ist eine in der Webentwicklung weit verbreitete Programmiersprache, während WebSocket ein Netzwerkprotokoll für die Echtzeitkommunikation ist. Durch die Kombination der leistungsstarken Funktionen beider können wir ein effizientes Echtzeit-Bildverarbeitungssystem erstellen. In diesem Artikel wird erläutert, wie dieses System mithilfe von JavaScript und WebSocket implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die Anforderungen und Ziele des Echtzeit-Bildverarbeitungssystems klären. Angenommen, wir haben ein Kameragerät, das Bilddaten in Echtzeit sammeln kann
