Content-Security-Policy: form-action directive
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017.
Die HTTP Content-Security-Policy
(CSP) form-action
Direktive beschränkt die URLs, die als Ziel von Formularübermittlungen aus einem bestimmten Kontext verwendet werden können.
Warnung:
Ob form-action
Weiterleitungen nach einer Formularübermittlung blockieren sollte, ist umstritten, und die Implementierungen in den Browsern sind in diesem Punkt uneinheitlich (z.B. blockiert Firefox 57 die Weiterleitungen nicht, während Chrome 63 sie blockiert).
CSP-Version | 2 |
---|---|
Direktivtyp | Navigationsdirektive |
default-src Rückfall |
Nein. Wenn dies nicht gesetzt ist, 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 gemacht werden. 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 Quellenausdrücke übereinstimmen. Für diese Direktive sind folgende Quellenausdruckswerte 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';"
Verstoß-Szenario
Die Verwendung eines <form>
Elements mit einer Aktion, die auf ein inline JavaScript gesetzt ist, führt zu einem CSP-Verstoß.
<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 |