test - Was passiert, wenn ich zwei CSP-Richtlinien(Content Security Policies) habe-Header und Meta?




content-security-policy nginx (2)

Die Frage ist, ob CSP zweimal bedient werden soll:

Wie verhält es sich, wenn eine Richtlinie über den HTTP-Antwortheader für Content-Security-Policy und eine andere Richtlinie bereitgestellt wird, die mit dem <meta /> -Element angegeben wurde?

Werden diese beiden irgendwie zusammengeführt? Oder sonst welches hat Priorität? (Ich kann keine klaren Informationen dazu in der Spezifikation finden).

Ein spezieller Anwendungsfall könnte darin bestehen, Report-to über den HTTP-Antwortheader bereitzustellen und alle anderen Einschränkungen in das <meta /> -Element einzufügen, da einige davon von Webpack generiert werden durch die HTTP-Antwortheaderrichtlinie.


Wenn Sie CSP-Anweisungen sowohl in einem HTTP-Header für Content-Security-Policy als auch in einem meta , verwendet der Browser die restriktivsten CSP-Anweisungen, wo immer sie angegeben sind.

Einzelheiten zu mehreren Richtlinien finden Sie unter https://w3c.github.io/webappsec-csp/#multiple-policies Einzelheiten zur Verwendung des meta Elements finden Sie unter https://w3c.github.io/webappsec-csp/#meta-element :

Hinweis: Eine über ein meta angegebene Richtlinie wird zusammen mit allen anderen für die geschützte Ressource aktiven Richtlinien erzwungen, unabhängig davon, wo sie angegeben wurden. Die allgemeinen Auswirkungen der Durchsetzung mehrerer Richtlinien werden in §8.1 Die Auswirkungen mehrerer Richtlinien beschrieben .

8.1. Die Auswirkung mehrerer Richtlinien

Dies hat zur Folge, dass das Hinzufügen zusätzlicher Richtlinien zur Liste der zu erzwingenden Richtlinien die Funktionen der geschützten Ressource nur weiter einschränken kann .


Wie Sie festgestellt haben, werden sie zusammengeführt, wenn Sie es richtig machen. Ich möchte jedoch hinzufügen, dass Sie die Verwendung von Meta-Tags mit CSP-Headern nach Möglichkeit vermeiden sollten.

Warum? Dies widerspricht der Spezifikation und dem Geist von "CSP-Headern", sodass einige Funktionen nicht funktionieren: "Hinweis: Der Content-Security-Policy-Report-Only-Header wird in einem Meta-Element nicht unterstützt. Frame-Vorfahren und Sandbox-Direktiven. "

Unternehmen finden es sehr schwierig, einen CSP auf sichere Weise zu implementieren, ohne dabei ihre Website zu beschädigen oder viel Nacharbeit zu erfordern. Aus diesem Grund habe ich Enchanted Security erstellt , eine Sicherheitsrichtlinie für virtuelle Inhalte, die Netzwerkanforderungen auf der Seite überprüft, um sie zu verfolgen und böswillige Anforderungen zu blockieren. Es ist viel einfacher einzurichten als ein CSP und verfügt über Funktionen, die Sie auch von einem CSP nicht erhalten können.





content-security-policy