Content Security Policy nginx Tutorial Deutsch

Content Security Policy (CSP) nginx Tutorial

CSP wird verwendet um Webanwendungen sicherer zu machen.

Dort kann man definieren welche Inhalte von Drittseiten geladen werden dürfen.

Dies ist der Fall bei externen CSS Dateien, JS Dateien, Bootstrap, Youtube Einbindungen, Google Werbung oder sonstiges.

content-security-policy-nginx-tutorial

In CSP/nginx kann man dies wie folgt konfigurieren:

nano /etc/nginx/nginx.conf

#innerhalb des http blockes

add_header Content-Security-Policy "default-src 'unsafe-inline' 'unsafe-eval' 'self' data: about: *.mattionline.de *.googleapis.com *.ebay.com *.googlesyndication.com *.gstatic.com *.doubleclick.net *.amazon-adsystem.com *.google.com *.bootstrapcdn.com *.youtube.com *.ssl-images-amazon.com *.amazon.de *.w.org";

Schema: https://content-security-policy.com/

Directive Reference (steht als erstes da)

 default-src: Alles wird erlaubt (in dem Fall von externen Quellen - können auch VHosts auf dem eigenen Server sein)
 script-src: Javascript wird erlaubt
 style-src: CSS wird erlaubt
 img-src: Bilder werden erlaubt
 ....

Source List Reference (kommt als zweites)

 *: erlaubt alles
 'none': erlaubt nichts
 'self': eigene Seiten werden erlaubt
 domain.example.com: wird erlaubt
 *.example.com: alle Subdomains werden erlaubt
 https:: alles über HTTPS wird erlaubt
 'unsafe-inline': inline Javascript wird erlaubt (innerhalb des eigenen Codes)
 ...

Durch diese zwei Blöcke kann man sich alles zusammenbauen.

In meinem Fall habe ich die Developer Tools von Chrome verwendet um an geblockte Elemente zu kommen. (Rechtsclick -> Untersuchen)
Wenn etwas geblockt wird taucht es dort auf und man kann es seiner Content Security Policy hinzufügen.

Ich habe einfach alles von den oben genannten Domains zugelassen. default-src wird als fallback genommen wenn script-src zum Beispiel nicht definiert ist. Man könnte es zwar einzeln aufdröseln und schauen von welchen Domains js, css oder sonstiges eingebunden wird, aber mir reicht dies so aus.

Wenn man dies aber so machen möchte muss man einfach ein Semikolon verwenden um die Liste zu verlängern:

 add_header Content-Security-Policy "default-src 'self' *.googleapis.com; img-src *.w.org";

Ausnahmeregelung: Dies würde bedeuten, dass über w.org Bilder eingeblendet werden dürfen.

(Und natürlich dass über googleapis jeder Content eingebunden werden darf, sowie über die eigene Seite.)

Bewerte diesen Artikel

0 Bewertung(en), Durchschnitt: 0 von 5

Dieser Artikel wurde noch nicht bewertet.

Es tut uns leid, dass dir der Beitrag nicht gefallen hat.

Lass uns diesen Artikel überarbeiten.

Erzähle uns, was dir nicht gefallen hat.

Verwandte Beiträge
Linux Server – Kill Switch per HTTP

Anleitung: Den kompletten Linux Server per einfachem HTTP Browser Aufruf herunterfahren (Kill Switch). Funktioniert auch aus

Contact Form 7 Fehlermeldung in WordPress

Folgende Fehlermeldung erzeugte das WordPress Plugin Contact Form 7: /wp-json/contact-form-7/v1/contact-forms/140/feedback" failed (2: No such file or

Enable ALPN under Debian 10 Buster

How to enable ALPN support in nginx: echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo

How to make PHP FPM with nginx faster

I wanted to tune my webserver a bit to make PHP FPM and nginx faster. First

Woocommerce – 404 not found (Shop/Products)

I have installed Woocommerce and received a 404 not found error at the shop and products.

Shopware – Frontend Weiße Seite / White page

In meinem Fall spuckte Shopware nur eine weiße Seite aus. Nach ein wenig Nachforschungen fand ich

Hinterlasse einen Kommentar

  Abonnieren  
Benachrichtige mich bei
Scroll to Top