CSP: script-src-attr

Der HTTP Content-Security-Policy (CSP) script-src-attr-Direktive spezifiziert gültige Quellen für JavaScript Inline-Event-Handler.

Diese Direktive spezifiziert nur gültige Quellen für Inline-Skript-Event-Handler wie onclick. Sie gilt nicht für andere JavaScript-Quellen, die die Ausführung von Skripten auslösen können, wie z.B. URLs, die direkt in <script>-Elemente geladen werden, und XSLT-Stile. (Gültige Quellen können für alle JavaScript-Skript-Quellen mit script-src, oder nur für <script>-Elemente mit script-src-elem spezifiziert werden.)

CSP-Version 3
Direktivtyp Fetch directive
default-src Fallback Ja. Ist diese Direktive nicht vorhanden, sucht der Benutzeragent nach der script-src-Direktive, und wenn beide fehlen, fällt er auf die default-src-Direktive zurück.

Syntax

http
Content-Security-Policy: script-src-attr 'none';
Content-Security-Policy: script-src-attr <source-expression-list>;

Diese Direktive kann einen der folgenden Werte haben:

'none'

Keine Ressourcen dieses Typs dürfen geladen werden. Die einfachen Anführungszeichen sind obligatorisch.

<source-expression-list>

Eine durch Leerzeichen getrennte Liste von source expression Werten. Ressourcen dieses Typs dürfen geladen werden, wenn sie zu einem der angegebenen Quellen-Ausdrücke passen.

Quellen-Ausdrücke werden als Schlüsselwortwerte oder URL-Muster angegeben: Die Syntax für jeden Quellen-Ausdruck ist in CSP Source Values beschrieben.

script-src-attr kann zusammen mit script-src verwendet werden und wird diese Direktive für Prüfungen an Inline-Handlern überschreiben:

http
Content-Security-Policy: script-src <source>;
Content-Security-Policy: script-src-attr <source>;

Beispiele

Verstoßfall

Angenommen, dieser CSP-Header:

http
Content-Security-Policy: script-src-attr 'none'

…wird der folgende Inline-Event-Handler blockiert und nicht geladen oder ausgeführt:

html
<button id="btn" onclick="doSomething()"></button>

Beachten Sie, dass Sie Inline-Event-Handler generell durch addEventListener-Aufrufe ersetzen sollten:

js
document.getElementById("btn").addEventListener("click", doSomething);

Spezifikationen

Specification
Content Security Policy Level 3
# directive-script-src-attr

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch