Content-Security-Policy
ermöglicht es Websiteadministratoren, Ressourcen zu steuern,
die der Benutzeragent für eine bestimmte Seite laden darf.
Mit wenigen Ausnahmen umfassen Richtlinien meist die Angabe von Serverursprüngen und Skriptendpunkten.
Dies trägt zum Schutz vor Cross-Site-Scripting-Angriffen (XSS) bei.
Inhaltssicherheitsrichtlinie
default-src
dient als Fallback für die anderen CSP-Abrufdirektiven.
Für jede der folgenden Direktiven, die nicht vorhanden sind,
sucht der Benutzeragent nach der Direktive und verwendet diesen Wert dafür
Es wird empfohlen, mit einer angemessen gesperrten Richtlinie zu beginnen
default-src 'none';
Soll an erster Stelle stehen dient als Fallback für die anderen Richtlinien.
_________________________________________________________________
Beispiel:
default-src 'none'; frame-ancestors 'none'
Deaktivieren Sie das Laden aller Ressourcen und deaktivieren Sie das Framing,
was für die Verwendung von APIs empfohlen wird.
Legt fest von wo Manifests geladen werden dürfen.
________________________________
default-src https:;
Inline-Code deaktiviert und https erfordert
Laden von Ressourcen (Bilder, Schriftarten, Skripte usw.) über https zulassen
________________________________
default-src https: 'unsafe-inline';
Verhindert das Ressourcen versehentlich über http geladen werden.
Es bietet jedoch keinen XSS-Schutz.
________________________________
default-src 'self' cdn.beispiel.de;
Bestimmt alles, was nicht durch andere Regeln festgelegt wurde.
________________________________
default-src 'self'; img-src 'self' https://beispiele.com; object-src 'none'
Unsicheres Inline/Eval deaktivieren, nur Ressourcen vom gleichen Ursprung laden,
außer auch Bilder von beispiele zulassen
Deaktiviert auch die Ausführung von Plugins
________________________________
default-src *; object-src 'none'
Deaktivieren Sie die Verwendung von unsicherem Inline/Eval,
erlauben Sie alles andere außer der Plugin-Ausführung
________________________________
default-src 'none'; frame-src 'self'; frame-ancestors 'self'; img-src 'self';
style-src 'self'; base-uri 'self'; form-action 'self'; media-src 'self';
connect-src 'https://domain.eu https://domain.eu:55555 https://juergen.domain.eu https://localmail.domain.eu';
_________________________________________________________________
base-uri
Die HTTP Content-Security-Policy base-uri-Direktive schränkt die URLs ein,
die im <base>Element eines Dokuments verwendet werden können.
Wenn dieser Wert nicht vorhanden ist, ist ein beliebiger URI zulässig.
Wenn diese Direktive nicht vorhanden ist,
verwendet der Benutzeragent den Wert im Element <base>.
Beschränkung der URLs im Base-Tag.
base-uri 'self';
________________________________
block-all-mixed-content
Verhindert das Laden über HTTP, wenn die Seite HTTPS benutzt.
Veraltet:
Diese Funktion wird nicht mehr empfohlen.
Obwohl einige Browser es möglicherweise noch unterstützen,
wurde es möglicherweise bereits aus den relevanten Webstandards entfernt,
wird möglicherweise gerade gelöscht oder nur aus Kompatibilitätsgründen beibehalten.
Vermeiden Sie es, es zu verwenden, und aktualisieren Sie vorhandenen Code, wenn möglich.
um Ihre Entscheidung zu treffen.
Beachten Sie, dass diese Funktion jederzeit nicht mehr funktioniert.
Warnung:
Diese Direktive ist in der Spezifikation als veraltet markiert:
Alle gemischten Inhalte werden nun blockiert,
wenn sie nicht automatisch aktualisiert werden können.
________________________________________________________________
child-src
Legt die Quelle der Daten innerhalb von Frames fest.
Definiert die gültigen Quellen für Webworker
und verschachtelte Browserkontexte,
die mithilfe von Elementen wie frame und iframe geladen werden.
Für Arbeitnehmer werden nicht konforme Anforderungen
als schwerwiegend behandelt Netzwerkfehler durch den User-Agent.
Beispiel:
child-src 'self'
________________________________
child-src https://example.com/
Die untergeordnete HTTP-Direktive Content-Security-Policy (CSP)
definiert die gültigen Quellen für Web-Worker und verschachteltes Browsen Kontexte,
die mit Elementen wie <frame> und <iframe> geladen werden.
Definiert die gültigen Quellen für Webworker
und verschachtelte Browserkontexte,
die mithilfe von Elementen wie
<frame> und <iframe> geladen werden.
Warnung:
Anstelle von child-src
Wenn Sie verschachtelte Browserkontexte
und Worker regulieren möchten,
Sie sollten die Direktiven frame-src bzw. worker-src verwenden.
________________________________
connect-src
Schränkt die URLs ein,
die über Skriptschnittstellen geladen werden können
Legt die Quellen fest mit denen sich die Seite verbinden darf.
Die HTTP Content-Security-Policy (CSP) connect-src-Direktive schränkt die URLs ein,
die über Skriptschnittstellen geladen werden. Die APIs, die eingeschränkt sind, sind:
<a> ping,
fetch(),
XMLHttpRequest,
WebSocket,
EventSource, and
Navigator.sendBeacon().
Beispiel:
connect-src 'self';
connect-src https://dasler.eu https://juergen.dasler.eu https://localmail.dasler.eu
_________________________________________________________________
disown-opener
Stellt sicher, dass eine Ressource ihren Opener verleugnet,
wenn sie navigiert wird.
_________________________________________________________________
font-src
Gibt gültige Quellen für Schriftarten an
Die Quellen der Schriften für die Seite.
Beispiel:
font-src font.beispiel.de;
font-src https://example.com/
font-src source;
Das Laden der folgenden Schriftartressource ist blockiert und wird nicht geladen:
font-src source source;
________________________________
form-action
Schränkt die URLs ein,
die als Ziel einer Formularübermittlung
aus einem bestimmten Kontext verwendet werden können.
Endpunkte von Formularen.
Beispiel:
form-action 'self';
________________________________
frame-ancestors
Legt fest, welche Domains Frames und iFrames einfügen dürfen.
Gibt gültige übergeordnete Elemente an,
die eine Seite mit frame, iframe, object, embed oder applet einbetten können.
Beispiel:
frame-ancestors 'self' https://www.example.org;
frame-ancestors 'none';
Gehen Sie wie folgt vor,
um eine vertrauenswürdige Domäne (my-trusty-site.com) zuzulassen:
frame-ancestors my-trusty-site.com
________________________________
frame-src
Gibt gültige Quellen für geschachtelte Browserkontexte an,
die mithilfe von Elementen wie frame und iframe geladen werden.
Bestimmt die Quellen von Frames.
Beispiel:
frame-src 'self';
frame-src https://example.com/
_________________________________________________________________
img-src
gibt gültige Quellen für Bilder und Favicons an.
Ermöglicht das Laden von Ressourcen vom angegebenen Domänennamen.
img-src domain.example.com
________________________________
img-src *.example.com
Ermöglicht das Laden von Ressourcen von jeder Subdomain unter example.com.
________________________________
img-src https:
Ermöglicht das Laden von Ressourcen nur über HTTPS in jeder Domäne.
________________________________
img-src https://example.com
Ermöglicht das Laden von Ressourcen nur über HTTPS,das der angegebenen Domäne entspricht.
________________________________
img-src 'self' ;
________________________________
img-src 'self' data:
Ermöglicht das Laden von Ressourcen über das Datenschema
(z. B. Base64-codierte Bilder).
________________________________
img-src 'self' img.beispiel.de;
Die Quellen von denen Bilder geladen werden dürfen.
_________________________________________________________________
manifest-src
Gibt gültige Quellen für Anwendungsmanifestdateien an.
manifest-src https://example.com/
gibt an, welches Manifest angewendet werden kann auf die Ressource.
manifest-src
________________________________
media-src https://example.com/
media-src media.beispiel.de;
media-src 'self';
Bestimmt woher Audio- und Video-Dateien stammen dürfen.
gibt gültige Quellen für das Laden an Medien,
die die Elemente audio und video verwenden.
_________________________________________________________________
manifest-src
Legt fest, wohin aus dem Dokument navigiert werden darf.
Gibt gültige Quellen für Anwendungsmanifestdateien an.
Beispiel:
manifest-src
_________________________________________________________________
media-src
Gibt gültige Quellen zum Laden
von Medien mit den Elementen audio und video an.
Beispiel:
media-src https://example.com/
media-src none
media-src self
_________________________________________________________________
navigate-to
Schränkt die URLs ein,
zu denen ein Dokument mit beliebigen Mitteln navigieren kann
(a, form, window.location, window.open usw.)
Beispiel:
navigate-to beispiel.de;
_________________________________________________________________
object-src
Gibt gültige Quellen für die Elemente object, embed und applet an.
Um zulässige Typen für object und embed festzulegen,
verwenden Sie die plugin-types-Direktive.
Beispiel:
object-src https://example.com/
object-src 'none'
Verhindert das Laden von Ressourcen aus beliebigen Quellen.
object-src 'self';
Legt die Quellen von Flash und ähnlichen Formaten bzw. Plugins fest.
_________________________________________________________________
plugin-types
Legt über MIME-Types fest,
welche Plugins über object oder embed aufgerufen werden dürfen.
Beispiel:
plugin-types application/pdf;
________________________________
prefetch-src
Welche Quellen mit rel="prefetch"
oder rel="prerender" geladen werden dürfen.
Veraltet:
Diese Funktion wird nicht mehr empfohlen.
Obwohl einige Browser es möglicherweise noch unterstützen,
wurde es möglicherweise bereits aus den relevanten Webstandards entfernt,
wird möglicherweise gerade gelöscht oder nur aus Kompatibilitätsgründen beibehalten.
Vermeiden Sie es, es zu verwenden,
und aktualisieren Sie vorhandenen Code, wenn möglich.
Sehen Sie sich die Kompatibilitätstabelle unten auf dieser Seite an,
um Ihre Entscheidung zu treffen.
Beachten Sie, dass diese Funktion jederzeit nicht mehr funktioniert.
Nicht standardmäßig:
Diese Funktion ist nicht standardmäßig
und befindet sich nicht auf einer Standardspur.
Verwenden Sie es nicht auf Produktionsstandorten,
die dem Web zugewandt sind: Es funktioniert nicht für jeden Benutzer.
Es kann auch große Inkompatibilitäten zwischen Implementierungen geben,
und das Verhalten kann sich in Zukunft ändern.
Beispiel:
prefetch-src https://example.com/
prefetch-src 'none';
prefetch-src 'self'
_________________________________________________________________
referrer
Diese Funktion ist veraltet.
Obwohl es in einigen Browsern noch funktioniert,
wird von seiner Verwendung abgeraten,
da es jederzeit entfernt werden kann.
Versuchen Sie, es zu vermeiden.
Wird verwendet, um Informationen im Referer-Header (sic)
für Links außerhalb einer Seite anzugeben.
Verwenden Sie stattdessen den
Referrer-Policy Header.
no-referrer
Der Referer-Header wird vollständig weggelassen.
Es werden keine Referrer-Informationen zusammen mit Anfragen gesendet.
none-when-downgrade
Dies ist das Standardverhalten des Benutzeragenten,
wenn keine Richtlinie angegeben ist.
Der Ursprung wird als Referrer an ein
von vornherein so sicheres Ziel HTTPS-HTTPS gesendet,
aber nicht an ein weniger sicheres Ziel HTTPS-HTTP.
origin
Senden Sie in jedem Fall
nur die Herkunft des Dokuments als Referrer.
Das Dokument sendet den Referrer
https://example.com/page.htmlhttps://example.com/
origin-when-cross-origin / origin-when-crossorigin
Senden Sie eine vollständige URL,
wenn Sie eine Same-Origin-Anforderung ausführen,
aber senden Sie nur den Ursprung des Dokuments für andere Fälle.
unsafe-url
Senden Sie eine vollständige URL (entfernt von Parametern),
wenn Sie eine Anforderung desselben Ursprungs
oder eines Cross-Origins ausführen.
Durch diese Richtlinie werden
Ursprünge und Pfade
von TLS-geschützten Ressourcen
an unsichere Ursprünge weitergegeben.
Wägen Sie die Auswirkungen dieser Einstellung sorgfältig ab.
Beispiel:
referrer "none";
_________________________________________________________________
report-to
Löst eine .SecurityPolicyViolationEvent
Weist den Benutzer-Agent an,
Berichtsendpunkte für einen Ursprung zu speichern
Die Richtlinie hat an und für sich keine Wirkung,
sondern gewinnt erst in Kombination an Bedeutung mit anderen Richtlinien.
_________________________________________________________________
report-uri
Weist den Benutzeragenten an, Versuche zu melden,
gegen die Content Security Policy zu verstoßen.
Diese Verletzungsberichte bestehen aus JSON-Dokumenten,
die über eine HTTP-Anforderung
an den angegebenen URI gesendet werden.POST
_________________________________________________________________
require-sri-for
Erfordert die Verwendung von SRI für Skripts
oder Stile auf der Seite.
weist den Client an, die Verwendung von Subresource Integrity für Skripts
oder Stile auf der Seite zu erzwingen.
script
Erfordert SRI für Skripte.
style
Erfordert SRI für Stylesheets.
script style
Erfordert SRI sowohl für Skripte als auch für Stylesheets.
Beispiel:
Content-Security-Policy: require-sri-for script style
_________________________________________________________________
sandbox
Aktiviert eine Sandbox für die angeforderte Ressource,
ähnlich dem Attribut iframe.
_________________________________________________________________
script-src
gibt gültige Quellen für JavaScript an.
Dazu gehören nicht nur URLs, die direkt in <script>-Elemente geladen werden,
sondern auch Dinge wie Inline-Script-Event-Handler () und XSLT-Stylesheets,
die die Skriptausführung auslösen können.
script-src 'nonce-rAnd0m'
Ermöglicht die Ausführung eines Inline-Skripts oder CSS,
wenn das Skript < script nonce="rAnd0m">-Tag
(z. B.: ) ein Nonce-Attribut enthält,
das mit dem im CSP-Header angegebenen Nonce übereinstimmt.
Die Nonce sollte eine sichere zufällige Zeichenfolge sein und nicht wiederverwendet werden.
CSP-Stufe 2
script-src 'self'
Ermöglicht das Laden von Ressourcen vom gleichen Ursprung (gleiches Schema, Host und Port).
script-src https://example.com/
_________________________________________________________________
script-src 'sha1-*****=';
script-src 'sha256-*****=';
Ermöglicht die Ausführung eines Inline-Skripts oder CSS,
wenn sein Hash mit dem angegebenen Hash im Header übereinstimmt.
Unterstützt derzeit SHA256, SHA384 oder SHA512.
CSP-Stufe 2
script-src 'sha384-*****=';
script-src 'sha512-*****=';
________________________________
script-src 'strict-dynamic'
Ermöglicht einem erlaubten Skript,
zusätzliche Skripte über nicht vom Parser eingefügte Skriptelemente zu laden
(zum Beispiel document.createElement('script');ist erlaubt).
CSP-Stufe 3
________________________________
script-src 'unsafe-eval'
Ermöglicht unsichere dynamische Codeauswertung wie JavaScripteval()
________________________________
script-src 'unsafe-hashes' 'sha256-abc...'
Ermöglicht das Aktivieren von Skripten in Event-Handlern (z . B. onclick).
Gilt nicht für javascript:oder Inline- < script>
CSP Level 3
________________________________
script-src 'unsafe-inline'
Ermöglicht die Verwendung von Inline-Quellelementen wie Stilattributen, Onclick- oder Skript-Tag-Bodys
(abhängig vom Kontext der Quelle, auf die sie angewendet werden)
und javascript:URIs
________________________________
script-src-attr
gibt gültige Quellen für JavaScript-Inlineereignishandler an.
Diese Direktive gibt nur gültige Quellen für Inline-Skriptereignishandler wie .
Sie gilt nicht für andere JavaScript-Quellen, die die Skriptausführung auslösen können,
z. B. URLs, die direkt in <script>-Elemente und XSLT-Stylesheets geladen werden.
(Gültige Quellen können für alle JavaScript-Skriptquellen mit script-src
oder nur für Elemente mit script-src-elem angegeben werden.)onclick<script>
Beispiel:
script-src-attr 'none'
________________________________
script-src-elem
gibt gültige Quellen für JavaScript-Elemente <script> an.
Diese Direktive gibt nur gültige Quellen in Elementen an
(sowohl Skriptanforderungen als auch Blöcke).
Sie gilt nicht für andere JavaScript-Quellen,
die die Skriptausführung auslösen können,
z. B. Inline-Skriptereignishandler (),
Skriptausführungsmethoden,
die bei der "unsafe-eval"-Prüfung eingeschränkt sind,
und XSLT-Stylesheets.
(Gültige Quellen können für alle JavaScript-Skriptquellen mit script-src
oder nur für Inline-Skripthandler mit script-src-attr angegeben werden.)
Beispiel:
script-src-elem https://example.com/
________________________________
style-src
gibt gültige Quellen für Stylesheets an.
Beispiel:
style-src https://example.com/
style-src 'self'
________________________________
style-src-attr
gibt gültige Quellen für Inline-Stile an,
die auf einzelne DOM-Elemente angewendet werden.
Die Direktive legt keine gültigen Quellen für <style>-Elemente
und <link>-Elemente mit fest.
Diese werden mit style-src-elem gesetzt
(und gültige Quellen für alle Stile können mit style-src gesetzt werden).rel="stylesheet"
Beispiel:
style-src-attr 'none'
________________________________
style-src-elem
gibt gültige Quellen für Stylesheet-Elemente <style>
und <link>-Elemente mit an.rel="stylesheet"
Die Direktive legt keine gültigen Quellen für Inline-Stilattribute fest.
Diese werden mit style-src-attr gesetzt
(und gültige Quellen für alle Stile können mit style-src gesetzt werden).
Beispiel:
style-src-elem https://example.com/
_________________________________________________________________
upgrade-insecure-requests
Weist Benutzeragenten an,
alle unsicheren URLs einer Website
(die über HTTP bereitgestellt werden) so zu behandeln,
als wären sie durch sichere URLs (die über HTTPS bereitgestellt werden) ersetzt worden.
Diese Direktive ist für Websites mit einer großen Anzahl unsicherer Legacy-URLs gedacht,
die neu geschrieben werden müssen.
Die Direktive wird vor block-all-mixed-content ausgewertet,
und wenn sie gesetzt ist, ist letzteres effektiv ein No-Op.
Es wird empfohlen, die eine
oder andere Direktive festzulegen,
aber nicht beide.
Die Richtlinie stellt nicht sicher,
dass Benutzer, die Ihre Website über Links auf Websites Dritter besuchen,
für die Navigation auf oberster Ebene auf HTTPS aktualisiert werden,
und ersetzt daher nicht den Strict-Transport-Security (HSTS)-Header,
der weiterhin mit einem geeigneten gesetzt werden sollte,
um sicherzustellen, dass Benutzer keinen SSL-Stripping-Angriffen ausgesetzt sind.
Beispiel:
upgrade-insecure-requests
_________________________________________________________________
worker-src
gibt gültige Quellen für Worker-, SharedWorker- oder ServiceWorker-Skripts an.
Beispiel:
worker-src https://example.com/
worker-src 'self';
_________________________________________________________________
Ein Website-Administrator möchte Inhalte von einer vertrauenswürdigen Domäne und allen ihren Unterdomänen zulassen
(es muss nicht dieselbe Domäne sein, auf die der CSP eingestellt ist).
Content-Security-Policy default-src 'self' example.com *.example.com
Prüf-Tool für Content-Security-Policy auf webbkoll.dataskydd.net
Weiter Infos zu Metadaten infosec.mozilla.org