<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'"> <meta http-equiv="X-Content-Security-Policy" content="default-src 'self'; script-src 'self'"> <meta http-equiv="X-WebKit-CSP" content="default-src 'self'; script-src 'self'"> Header set Content-Security-Policy "default-src 'none'; frame-src 'self'; font-src 'self';img-src 'self' meineseite.de; object-src 'self'; script-src 'self'; style-src 'self';"
Besteht die Möglichkeit, direkt HTTP zu beeinflussen (hier: header set), würde ich keine <meta>-Sachen benutzen. Das führt nur zu Fehlern und Lücken. Es muss beachtet werden, dass sämtliche HTML-Seiten die <meta>-Angaben einbinden und in obigem Fall hast du auch noch sich widersprechende Angaben in <meta> und header (hier vielleicht versehentlich, aber das zeigt trotzdem genau das Problem, das entsteht, wenn dieselbe Sache an zwei Orten eingerichtet wird).
X-Content-Security-Policy und X-WebKit-CSP: Ja, nein, vielleicht … Aktuelle Browser kennen Content-Security-Policy als solche, mit den beiden X-Dingern erschlägst du wohl noch irgendwelche etwas älteren Browser. Den Nutzen kann man nicht absprechen, aber ich frage mich bei sowas immer, ob jemand, der mit einem alten Browser unterwegs ist, nicht noch ganz andere Probleme hat. Die Welt kann ich damit nicht retten und einem von 10.000 Besuchern noch extra die Windeln anzulegen ist das Meinige irgendwie auch nicht.
default-src 'self'; script-src 'self'
Das ist nicht so hübsch, denn script-src nimmt als Vorgabe sowieso default-src. Sind beide Angaben identisch, kann die spezifischere weg.
default-src 'none'; frame-src 'self'; font-src 'self';img-src 'self' meineseite.de; object-src 'self'; script-src 'self'; style-src 'self'
Das ist wegen default-src 'none' schon sehr verbarrikadiert, aber kann man natürlich machen.
Überlege dir, ob du selbst <frame> oder <iframe> benutzt (ansonsten frame-src raus), ebenso <object>, <embed> oder <applet> (ansonsten object-src raus).
Spaßeshalber würde ich statt meineseite.de ausdrücklich https://meineseite.de benutzen, falls der betreffende Server HTTPS kann. Wenn schon, denn schon.
Anekdote anbei: Mich hat default-src 'none' vor einer Weile auf dem falschen Fuß erwischt. Einer SVG-Grafik fehlte plötzlich die Farbe. Es hat eine Weile gedauert, bis mir auffiel, dass die Farbe ja in der SVG-Datei festgelegt, mithin style-src 'unsafe-inline' nötig war.
X-Frame-Options
… ersetzt du durch "frame-ancestors: 'none'", hat also mit frame-src nichts zu tun. Beachte auch, dass frame-ancestors zu den Werten gehört, die nicht auf den Vorgabewert von default-src zurückfallen.
X-XSS-Protection
… ergibt sich automatisch, sobald dein script-src kein 'unsafe-inline' enthält.
https://developer.mozilla.org/de/docs/Web/HTTP/Headers/Content-Security-Policy hat eine große Übersicht. Bei Mozilla findest du auch Infos zu X-XSS-Protection etc.