Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Wie implementiere ich CSP-Frame-Vorfahren in Apache, Nginx und WordPress?

csp Rahmen
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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

CSP ist einer der 10 sichersten Header des OWASP und wird häufig von Sicherheitsexperten oder Tools zur Implementierung empfohlen. Es gibt viele Optionen zum Erstellen der Richtlinie, um zu erzwingen, wie Sie Ihre Webressourcen verfügbar machen möchten.

Eine der Richtlinien genannt frame-ancestors die in CSP Version 2 eingeführt wurden, bietet mehr Flexibilität im Vergleich zu X-Frame-Options-Header. frame-ancestors funktioniert auf die gleiche Weise wie die X-Frame-Optionen, um zuzulassen oder zu verbieten, dass Ressourcen mithilfe von Iframe, Frame, Objekt, Einbettung und Applet-Element eingebettet werden.

Ich denke, X-Frame-Optionen werden in naher Zukunft veraltet sein, wenn CSP vollständig mit allen gängigen Browsern kompatibel ist. Während ich schreibe, CSP-Frame-Vorfahren funktioniert mit allen aktuellen Browserversionen außer IE.

Ich weiß nicht, wann Microsoft die Unterstützung für den Internet Explorer zulässt. Sie können die Browserkompatibilität jederzeit unter überprüfen Kann ich die Seite benutzen?.

Schauen wir uns das folgende Implementierungsverfahren an.

Apache HTTP

mod_headers ist die Voraussetzung, um Header in Apache einzufügen. Abhängig vom Betriebssystem und der Version, aber wenn Sie Ubuntu und Apache 2.4 verwenden, können Sie verwenden a2enmod headers zu ermöglichen es.

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: Alle Konfigurationen, die Sie in beiden Fällen vornehmen können httpd.conf Datei oder eine effektive Konfigurationsdatei, die Sie verwenden.

Abgelehnt von allen

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

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

Speichern Sie die Datei und starten Sie das Apache-HTTP neu, damit es wirksam wird.

Ich habe versucht, die Site einzubetten, und wie Sie sehen, wurde sie blockiert.

Erlaube von dir selbst, aber VERWEIGERE andere

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

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

Erlaube von selbst und mehreren Domänen

X-Frame-Optionen hatten keine Option, die von mehreren Domänen zugelassen werden konnte. Dank CSP können Sie wie folgt vorgehen.

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

Mit den oben genannten Informationen kann der Inhalt von self, geekflare.com, gf.dev, geekflare.dev, eingebettet werden. Ändern Sie diese Domains mit Ihren.

Nginx

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

Verweigere alles

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

Verweigere alles, aber nicht dich 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 ermöglicht das Einbetten von Inhalten auf yoursite.com und example.come. Vergessen Sie nach dem Vornehmen von Änderungen nicht, den Nginx-Server neu zu starten, um die Richtlinie zu testen.

WordPress

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

Wenn Sie wie eine Cloud oder VPS selbst gehostet werden, verwenden Sie möglicherweise einen Webserver wie Apache oder Nginx. Wenn ja, können Sie den oben genannten Anweisungen folgen, um sie anstelle von WordPress auf einem Webserver zu implementieren. Wenn Sie jedoch auf Shared Hosting oder kein Zugriff zum Ändern von Webservern, dann können Sie ein Plugin nutzen.

Um CSP in WordPress zu implementieren, können Sie das verwenden Plugin für Content Security Policy Pro.

Verifikation

Sobald Sie mit der Implementierung fertig sind, können Sie entweder die im Browser integrierten Entwicklertools oder a verwenden Test-Tool für sichere Header.

Fazit

CSP ist einer der mächtigsten, sichere Header um Web-Schwachstellen zu verhindern. Ich hoffe, die obigen Anweisungen helfen Ihnen bei der Implementierung von Frame-Vorfahren in Apache und Nginx.

Danke an unsere Sponsoren
Weitere großartige Lektüren zu Apache HTTP
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder