CSP: form-action
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016.
Die HTTP Content-Security-Policy
(CSP) form-action
Direktive beschränkt die URLs, die als Ziel von Formularübermittlungen in einem gegebenen Kontext verwendet werden können.
Warnung:
Ob form-action
Weiterleitungen nach einer Formularübermittlung blockieren sollte, wird diskutiert und die Browserimplementierungen dieses Aspekts sind uneinheitlich (z.B. Firefox 57 blockiert die Weiterleitungen nicht, während Chrome 63 dies tut).
CSP-Version | 2 |
---|---|
Direktivtyp | Navigationsdirektive |
default-src Fallback |
Nein. Ohne Einstellung ist alles erlaubt. |
Syntax
Content-Security-Policy: form-action 'none';
Content-Security-Policy: form-action <source-expression-list>;
Diese Direktive kann einen der folgenden Werte haben:
'none'
-
Es dürfen keine Formularübermittlungen erfolgen. Die einfachen Anführungszeichen sind obligatorisch.
<source-expression-list>
-
Eine durch Leerzeichen getrennte Liste von Source-Expression Werten. Formularübermittlungen dürfen an URLs erfolgen, die mit einem der angegebenen Source-Expressions übereinstimmen. Für diese Direktive sind die folgenden Source-Expression-Werte anwendbar:
Beispiele
Meta-Tag Konfiguration
<meta http-equiv="Content-Security-Policy" content="form-action 'none'" />
Apache-Konfiguration
<IfModule mod_headers.c>
Header set Content-Security-Policy "form-action 'none';"
</IfModule>
Nginx-Konfiguration
add_header Content-Security-Policy "form-action 'none';"
Verletzungsfall
Die Verwendung eines <form>
Elements mit einer Aktion, die auf Inline-JavaScript gesetzt ist, führt zu einer CSP-Verletzung.
<meta http-equiv="Content-Security-Policy" content="form-action 'none'" />
<form action="javascript:alert('Foo')" id="form1" method="post">
<input type="text" name="fieldName" value="fieldValue" />
<input type="submit" id="submit" value="submit" />
</form>
<!--
// Error: Refused to send form data because it violates the following
// Content Security Policy directive: "form-action 'none'".
-->
Spezifikationen
Specification |
---|
Content Security Policy Level 3 # directive-form-action |
Browser-Kompatibilität
BCD tables only load in the browser