Heim Web-Frontend js-Tutorial Häufige Sicherheitslücken in JavaScript und automatisierte Erkennungstechnologie_Javascript-Kenntnisse

Häufige Sicherheitslücken in JavaScript und automatisierte Erkennungstechnologie_Javascript-Kenntnisse

May 16, 2016 pm 03:43 PM

Vorwort

Mit der Entwicklung von Web2.0 und der Popularität des Ajax-Frameworks nehmen Rich-Client-Webanwendungen (Rich Internet Applications, RIA) von Tag zu Tag zu, und immer mehr Logik wird von der Serverseite auf übertragen Der Client verwendet normalerweise alle diese Logiken. Aber leider schenken Entwickler der Sicherheit von JavaScript-Code im Allgemeinen nicht viel Aufmerksamkeit. Laut dem mittelfristigen Trendbericht IBM X-Force 2011 weisen 40 % der Fortune-500-Websites und allgemein bekannter Websites JavaScript-Sicherheitslücken auf. Dieser Artikel zeigt den Lesern häufige Sicherheitslücken in JavaScript in Kombination mit Code auf und soll den Lesern dabei helfen, diese Sicherheitslücken bei der täglichen Codierungsarbeit zu vermeiden. Darüber hinaus unterscheiden sich die Prinzipien clientseitiger Sicherheitslücken in JavaScript geringfügig von denen serverseitiger Sicherheitslücken. Es gibt derzeit große technische Schwierigkeiten bei der automatischen Erkennung von Sicherheitslücken in JavaScript Neue Funktionen von IBM Rational AppScan Standard Edition V8.0 (JavaScript Security Analyzer (JSA)-Technologie erkennt automatisch JavaScript-Sicherheitslücken.

Häufige Sicherheitslücken in JavaScript

Im Dezember 2010 veröffentlichte IBM ein Whitepaper zu clientseitigen JavaScript-Sicherheitslücken in Webanwendungen, in dem die vom IBM Security Research Institute durchgeführte Umfrage zum JavaScript-Sicherheitsstatus vorgestellt wurde. Die Beispieldaten umfassen 675 Websites, darunter Websites von Fortune-500-Unternehmen, und weitere 175 bekannte Websites, darunter IT-Unternehmen, Unternehmen für Webanwendungssicherheitsdienste, Websites sozialer Netzwerke usw. Um den normalen Betrieb dieser Websites nicht zu beeinträchtigen, verwendeten die Forscher einen nicht-invasiven Crawler, der nur eine Teilmenge der Seiten scannte, auf die ohne Anmeldung zugegriffen werden konnte, also nicht mehr als 200 Seiten pro Website. Diese Seiten wurden gespeichert und die Forscher nutzten die JavaScript-Sicherheitsanalysetechnologie von IBM, um diese Seiten offline zu analysieren, wobei sie sich auf DOM-basierte Cross-Site-Scripting- und Umleitungsschwachstellen konzentrierten.

Die Testergebnisse sind erstaunlich. 14 % dieser bekannten Websites weisen schwerwiegende JavaScript-Sicherheitsprobleme auf. Hacker können diese Schwachstellen nutzen, um betrügerische Software einzuschleusen, Phishing-Seiten einzuschleusen und Benutzersitzungen zu kapern. Noch erstaunlicher ist, dass der X-Force-Bericht Mitte 2011 mit der Reife der JavaScript-Sicherheitsanalysetechnologie von IBM zeigte, dass IBM die oben genannten bekannten Websites erneut getestet und weitere Sicherheitslücken entdeckt hat. Etwa 40 % der Websites verfügen über JavaScript-Sicherheit Schwachstellen.

Java Enterprise-Level Universal Permission Security Framework Quellcode SpringMVC Mybatis oder Hibernate Ehcache Shiro Druid Bootstrap HTML5

Der folgende Artikel zeigt den Lesern diese häufigen Sicherheitslücken in JavaScript in Kombination mit Code auf, sodass Leser diese Sicherheitsprobleme während des eigentlichen Codierungsprozesses erkennen und diese Risiken so früh wie möglich vermeiden können.

DOM-basiertes Cross-Site-Scripting

Wir haben alle von XSS (Cross Site Script, auch bekannt als Cross-Site-Scripting-Angriff) gehört, bei dem es sich um einen Angreifer handelt, der bösartigen Skriptcode (normalerweise HTML-Code und JavaScript) in den Code legitimer Webseiten einfügt und diesen dann übermittelt Anfrage an den Server, und dann wird der Server-Antwortseite der bösartige Skriptcode des Angreifers implantiert. Der Angreifer kann diese bösartigen Skriptcodes verwenden, um Angriffe wie Session-Hijacking durchzuführen. Cross-Site-Scripting wird im Allgemeinen in reflektierende und persistente Typen unterteilt: Reflektives Cross-Site-Scripting tritt auf, wenn Anforderungsdaten unverschlüsselt und ungefiltert auf der Server-Antwortseite gerendert werden. Persistent bezieht sich auf Anforderungsdaten, die bösartigen Code enthalten. Sie werden auf dem Server des Servers gespeichert Webanwendung. Jedes Mal, wenn der Benutzer eine bestimmte Seite besucht, wird der Schadcode automatisch ausgeführt. Diese Art von Angriff kommt besonders häufig bei Social-Networking-Sites vom Typ Web 2.0 vor und die Bedrohung ist auch größer. Es gibt im Wesentlichen zwei Möglichkeiten, mit Cross-Site-Scripting umzugehen: erstens, keiner Benutzereingabe zu vertrauen und die Whitelist-Technologie zu verwenden, um Eingabeparameter zu überprüfen, zweitens, den vom Benutzer bereitgestellten Inhalt bei der Ausgabe zu maskieren;

Aber wenig bekannt ist, dass es eine dritte Art von Cross-Site-Scripting-Schwachstelle gibt. Im Jahr 2005 veröffentlichte Amit Klein das Whitepaper „DOM Based Cross Site Scripting or XSS of the Third Kind“, das DOM-basiertes Cross-Site-Scripting enthüllte Der Inhalt muss nicht auf serverseitige Antworten angewiesen sein. Wenn einige HTML-Seiten Attribute von DOM-Elementen wie document.location, document.URL oder document.referer verwenden, können Angreifer diese Attribute verwenden, um bösartige Skripte einzuschleusen, um DOM-Elemente zu implementieren. basierte Querverweise.

Im Folgenden demonstrieren wir das Prinzip des DOM-basierten Cross-Site-Scripting anhand einer sehr einfachen HTML-Seite. Angenommen, es gibt eine statische HTML-Seite (siehe Listing 1), die eine Meldung anzeigt, die den Benutzer zu einer erfolgreichen Anmeldung begrüßt.

Liste 1. HTML-Code mit DOM-basiertem XSS

<HTML>
<TITLE>Welcome!</TITLE>
Hi
<SCRIPT>
 var pos=document.URL.indexOf("name=")+5;
 document.write(document.URL.substring(pos,document.URL.length));
</SCRIPT>
<BR>
Welcome to our system
…
</HTML>
Nach dem Login kopieren

按照该页面 JavaScript 代码逻辑,它会接受 URL 中传入的 name 参数并展示欢迎信息,如清单 2 所示:

清单 2. 正常情况下的访问 URL

http://www.vulnerable.site/welcome.html?name=Jeremy

但如果恶意攻击者输入类似如下的脚本,见清单 3,该页面则会执行被注入的 JavaScript 脚本。

清单 3. 访问 URL 中注入脚本

http://www.vulnerable.site/welcome.html?name=

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Mar 18, 2025 pm 03:12 PM

In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.

Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Mar 18, 2025 pm 03:14 PM

In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Mar 18, 2025 pm 03:16 PM

In dem Artikel werden effektives JavaScript -Debuggen mithilfe von Browser -Entwickler -Tools, der Schwerpunkt auf dem Festlegen von Haltepunkten, der Konsole und der Analyse der Leistung erörtert.

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Wie verwende ich Quellkarten zum Debuggen, um den JavaScript -Code zu debuggen? Wie verwende ich Quellkarten zum Debuggen, um den JavaScript -Code zu debuggen? Mar 18, 2025 pm 03:17 PM

In dem Artikel wird erläutert, wie Quellkarten zum Debuggen von JavaScript verwendet werden, indem er auf den ursprünglichen Code zurückgegeben wird. Es wird erläutert, dass Quellenkarten aktiviert, Breakpoints eingestellt und Tools wie Chrome Devtools und WebPack verwendet werden.

Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Apr 04, 2025 pm 05:12 PM

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

See all articles