Secure Site

This site is protected from clickjacking attacks.

In diesem Beispiel prüft das JavaScript, ob das aktuelle Fenster (window.self) nicht das oberste Fenster (window.top) ist. Ist dies nicht der Fall, wird das oberste Fenster auf die URL des aktuellen Fensters umgeleitet, wodurch der Iframe effektiv verlassen wird.

2. Verbessertes Frame-Busting mit Event-Listenern
Sie können Ihre Frame-Busting-Technik weiter verbessern, indem Sie Ereignis-Listener verwenden, um kontinuierlich zu überprüfen, ob Ihre Seite gerahmt ist.

Beispiel:

            Enhanced Frame Busting        

Secure Site

This site is protected from clickjacking attacks.

In diesem Beispiel wird die Funktion „preventClickjacking“ für die DOMContentLoaded-, Load- und Resize-Ereignisse aufgerufen, um kontinuierlichen Schutz sicherzustellen.

Serverseitiger Schutz

Während JavaScript-Methoden nützlich sind, bietet die Implementierung serverseitiger Schutzmaßnahmen eine zusätzliche Sicherheitsebene. So richten Sie HTTP-Header in Apache und Nginx ein, um Clickjacking zu verhindern:

1. X-Frame-Options-Header
Mit dem Header „X-Frame-Options“ können Sie angeben, ob Ihre Site in Iframes eingebettet werden kann. Es gibt drei Optionen:

VERWEIGERN: Verhindert, dass eine Domain Ihre Seite einbettet.
SAMEORIGIN: Ermöglicht die Einbettung nur vom gleichen Ursprung.
ALLOW-FROM uri: Ermöglicht das Einbetten von der angegebenen URI.
Beispiel:

X-Frame-Options: DENY

Apache-Konfiguration
Fügen Sie diesen Header zu Ihrer Serverkonfiguration hinzu:

# ApacheHeader always set X-Frame-Options \\\"DENY\\\"

Nginx-Konfiguration
Fügen Sie diesen Header zu Ihrer Serverkonfiguration hinzu:

2. Content-Security-Policy (CSP) Frame-Ancestors
CSP bietet einen flexibleren Ansatz durch die Direktive „frame-ancestors“, die gültige Eltern angibt, die die Seite mithilfe von Iframes einbetten dürfen.

Beispiel:

Content-Security-Policy: frame-ancestors \\'self\\'

Apache-Konfiguration
Fügen Sie diesen Header zu Ihrer Serverkonfiguration hinzu:

Beispiel:

# ApacheHeader always set Content-Security-Policy \\\"frame-ancestors \\'self\\'\\\"

Nginx-Konfiguration
Fügen Sie diesen Header zu Ihrer Serverkonfiguration hinzu:

# Nginxadd_header Content-Security-Policy \\\"frame-ancestors \\'self\\'\\\";

Abschluss

Clickjacking stellt eine ernsthafte Bedrohung für die Websicherheit dar, aber durch die Implementierung von JavaScript-Frame-Busting-Techniken und serverseitigen Schutzmaßnahmen wie X-Frame-Options und Content-Security-Policy-Headern können Sie Ihre Webanwendungen effektiv schützen. Nutzen Sie die bereitgestellten Beispiele, um die Sicherheit Ihrer Website zu erhöhen und Ihren Benutzern ein sichereres Erlebnis zu bieten.

","image":"http://www.luping.net/uploads/20240801/172248708366ab112bdc1ec.jpg","datePublished":"2024-08-01T12:38:03+08:00","dateModified":"2024-08-01T12:38:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Verhindern von Clickjacking-Angriffen in JavaScript

Verhindern von Clickjacking-Angriffen in JavaScript

Veröffentlicht am 01.08.2024
Durchsuche:356

Preventing Clickjacking Attacks in JavaScript

Clickjacking, auch bekannt als UI-Redressing, ist eine Art Angriff, bei dem böswillige Akteure Benutzer dazu verleiten, auf etwas zu klicken, das sich von dem unterscheidet, was sie wahrnehmen, indem sie Webseiten in Iframes einbetten. Dies kann zu unbefugten Aktionen führen und die Benutzersicherheit gefährden. In diesem Blog werden wir zusammen mit benutzerfreundlichen Beispielen untersuchen, wie Clickjacking-Angriffe mithilfe von JavaScript und Serverkonfigurationen für Apache und Nginx verhindert werden können.

Clickjacking verstehen

Beim Clickjacking wird ein transparenter oder undurchsichtiger Iframe über einem legitimen Webseitenelement platziert, was dazu führt, dass Benutzer unwissentlich Aktionen wie das Ändern von Einstellungen oder das Überweisen von Geldern ausführen.

Beispiel aus der Praxis

Stellen Sie sich ein Szenario vor, in dem ein Angreifer einen versteckten Iframe von einer Banking-Site in eine vertrauenswürdige Webseite einbettet. Wenn ein Benutzer auf eine scheinbar harmlose Schaltfläche klickt, autorisiert er möglicherweise tatsächlich eine Banktransaktion.

Hier ist ein Beispiel einer anfälligen Seite:



    Clickjacking Example

Welcome to Our Site

Clickjacking mit JavaScript verhindern

Um Clickjacking-Angriffe zu verhindern, können Sie mithilfe von JavaScript sicherstellen, dass Ihre Website nicht mit Frames versehen wird. Hier ist eine Schritt-für-Schritt-Anleitung zur Implementierung dieses Schutzes:

1. JavaScript-Frame-Busting
Beim Frame-Busting wird JavaScript verwendet, um zu erkennen, ob Ihre Website in einen Iframe geladen ist, und diesen zu verlassen.

Beispiel:



    Frame Busting Example

Secure Site

This site is protected from clickjacking attacks.

In diesem Beispiel prüft das JavaScript, ob das aktuelle Fenster (window.self) nicht das oberste Fenster (window.top) ist. Ist dies nicht der Fall, wird das oberste Fenster auf die URL des aktuellen Fensters umgeleitet, wodurch der Iframe effektiv verlassen wird.

2. Verbessertes Frame-Busting mit Event-Listenern
Sie können Ihre Frame-Busting-Technik weiter verbessern, indem Sie Ereignis-Listener verwenden, um kontinuierlich zu überprüfen, ob Ihre Seite gerahmt ist.

Beispiel:



    Enhanced Frame Busting

Secure Site

This site is protected from clickjacking attacks.

In diesem Beispiel wird die Funktion „preventClickjacking“ für die DOMContentLoaded-, Load- und Resize-Ereignisse aufgerufen, um kontinuierlichen Schutz sicherzustellen.

Serverseitiger Schutz

Während JavaScript-Methoden nützlich sind, bietet die Implementierung serverseitiger Schutzmaßnahmen eine zusätzliche Sicherheitsebene. So richten Sie HTTP-Header in Apache und Nginx ein, um Clickjacking zu verhindern:

1. X-Frame-Options-Header
Mit dem Header „X-Frame-Options“ können Sie angeben, ob Ihre Site in Iframes eingebettet werden kann. Es gibt drei Optionen:

VERWEIGERN: Verhindert, dass eine Domain Ihre Seite einbettet.
SAMEORIGIN: Ermöglicht die Einbettung nur vom gleichen Ursprung.
ALLOW-FROM uri: Ermöglicht das Einbetten von der angegebenen URI.
Beispiel:

X-Frame-Options: DENY

Apache-Konfiguration
Fügen Sie diesen Header zu Ihrer Serverkonfiguration hinzu:

# Apache
Header always set X-Frame-Options "DENY"

Nginx-Konfiguration
Fügen Sie diesen Header zu Ihrer Serverkonfiguration hinzu:

2. Content-Security-Policy (CSP) Frame-Ancestors
CSP bietet einen flexibleren Ansatz durch die Direktive „frame-ancestors“, die gültige Eltern angibt, die die Seite mithilfe von Iframes einbetten dürfen.

Beispiel:

Content-Security-Policy: frame-ancestors 'self'

Apache-Konfiguration
Fügen Sie diesen Header zu Ihrer Serverkonfiguration hinzu:

Beispiel:

# Apache
Header always set Content-Security-Policy "frame-ancestors 'self'"

Nginx-Konfiguration
Fügen Sie diesen Header zu Ihrer Serverkonfiguration hinzu:

# Nginx
add_header Content-Security-Policy "frame-ancestors 'self'";

Abschluss

Clickjacking stellt eine ernsthafte Bedrohung für die Websicherheit dar, aber durch die Implementierung von JavaScript-Frame-Busting-Techniken und serverseitigen Schutzmaßnahmen wie X-Frame-Options und Content-Security-Policy-Headern können Sie Ihre Webanwendungen effektiv schützen. Nutzen Sie die bereitgestellten Beispiele, um die Sicherheit Ihrer Website zu erhöhen und Ihren Benutzern ein sichereres Erlebnis zu bieten.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/rigalpatel001/preventing-clickjacking-attacks-in-javascript-39pj?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3