Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Apache-HTTP , Nginx , Sicherheit und WordPress Zuletzt aktualisiert: September 14, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

Schützen Sie Ihre Website vor Click-Jacking-Angriffen, indem Sie einen CSP-Header (Content Security Policy) implementieren

CSP ist einer der 10 sichersten Header von OWASP und wird häufig von Sicherheitsexperten oder -tools zur Implementierung empfohlen. Es gibt viele Möglichkeiten, die Richtlinie so zu gestalten, dass sie durchsetzt, wie Sie Ihre Webressourcen offenlegen wollen.

Eine der Direktiven namens frame-ancestors die in CSP Version 2 eingeführt wurden, bieten mehr Flexibilität im Vergleich zu den X-Frame-Options-Header. frame-ancestors funktioniert auf die gleiche Weise wie die X-Frame-Options, um die Einbettung von Ressourcen mittels iframe-, frame-, object-, embed- und applet-Elementen zu erlauben oder zu verbieten.

Ich denke, dass X-Frame-Options in naher Zukunft überflüssig sein wird, wenn CSP vollständig mit allen wichtigen Browsern kompatibel ist. Wie ich schreibe, CSP-Rahmen-Anker funktioniert mit allen aktuellen Browser-Versionen außer IE.

Ich weiß nicht, wann Microsoft die Unterstützung für den IE erlauben wird. Sie können die Browserkompatibilität jederzeit überprüfen unter Kann ich die Website verwenden.

Schauen wir uns das folgende Umsetzungsverfahren an.

Apache-HTTP

mod_headers ist die Voraussetzung für die Einbindung von Headern in den Apache. Je nach Betriebssystem und Version, aber wenn Sie Ubuntu verwenden und Apache 2.4 dann können Sie a2enmod headers um sie zu aktivieren.

root@geekflare:/etc/apache2# a2enmod headers
Enabling module headers.
To activate the new configuration, you need to run:
  systemctl restart apache2
root@geekflare:/etc/apache2# systemctl restart apache2
root@geekflare:/etc/apache2#

Hinweis: die gesamte Konfiguration, die Sie entweder in httpd.conf Datei oder eine andere effektive Konfigurationsdatei, die Sie verwenden.

DENY von ALL

Ähnlich wie bei X-Frame-Options DENY. Wenn Sie nicht möchten, dass eine Website (einschließlich Ihrer eigenen) eingebettet wird, fügen Sie Folgendes hinzu.

Header set Content-Security-Policy "frame-ancestors 'none';"

Speichern Sie die Datei und starten Sie den Apache-HTTP neu, damit sie wirksam wird.

Ich habe versucht, die Seite einzubetten, und wie Sie sehen können, wurde sie blockiert.

Von sich selbst zulassen, aber andere verleugnen

Ähnlich wie bei X-Frame-Options SAMEORIGIN können Sie Folgendes hinzufügen.

Header set Content-Security-Policy "frame-ancestors 'self';"

Von sich selbst und mehreren Domänen aus zulassen

X-Frame-Options hatte keine Option, um mehrere Domains zuzulassen. Dank CSP können Sie dies nun wie unten beschrieben tun.

Header set Content-Security-Policy "frame-ancestors 'self' 'geekflare.com' 'gf.dev' 'geekflare.dev';"

Die obigen Angaben ermöglichen das Einbetten von Inhalten von self, geekflare.com, gf.dev, geekflare.dev. Ändern Sie diese Domains mit Ihren.

Nginx

Das Konzept und die Direktive sind die gleichen wie oben im Abschnitt über Apache-HTTP erläutert, mit Ausnahme der Art und Weise, wie Sie die Header hinzufügen. Header in Nginx sollten unter der server Block in einer entsprechenden Konfigurationsdatei.

alle verweigern

add_header Content-Security-Policy "frame-ancestors 'none';";

Alle verleugnen, aber nicht sich selbst

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

Aus mehreren Domänen zulassen

add_header Content-Security-Policy "frame-ancestors 'yoursite.com' 'example.com';";

Das obige Beispiel erlaubt das Einbetten von Inhalten auf yoursite.com und example.come. Vergessen Sie nach den Änderungen nicht, den Nginx-Server neu zu starten, um die Richtlinie zu testen.

WordPress

Das hängt davon ab, wie Sie WordPress hosten.

Wenn Sie selbst gehostet werden, z. B. in einer Cloud oder auf einem VPS, dann verwenden Sie möglicherweise einen Webserver wie Apache oder Nginx. In diesem Fall können Sie die oben genannten Schritte zur Implementierung auf dem Webserver anstelle von WordPress durchführen. Wenn Sie jedoch auf gemeinsames Hosting oder keinen Zugang zum Ändern von Webservern haben, dann können Sie ein Plugin einsetzen.

Um CSP in WordPress zu implementieren, können Sie die Plugin "Content Security Policy Pro.

Überprüfung

Sobald Sie mit der Implementierung fertig sind, können Sie entweder die in den Browser eingebauten Entwicklerwerkzeuge oder ein Testwerkzeug für sichere Header.

Schlussfolgerung

CSP ist einer der mächtigsten, sichere Kopfzeilen um Web-Schwachstellen zu verhindern. Ich hoffe, die obigen Anweisungen zeigen Ihnen, wie Sie Frame-Ancestoren in Apache und Nginx implementieren können.

  • Chandan Kumar
    Autor
Dank an unsere Sponsoren
Weitere gute Lektüre über Apache HTTP
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder