Заголовки: CSP.form-action
Content-Security-Policy: директива form-action
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с апреля 2017 года.
Директива Content-Security-Policy (CSP) протокола HTTP form-action ограничивает URL-адреса, которые можно использовать в качестве цели отправки форм из заданного контекста.
Предупреждение: Вопрос о том, должна ли form-action блокировать перенаправления после отправки формы, обсуждается, а реализация этого аспекта в браузерах различается (например, Firefox 57 не блокирует перенаправления, а Chrome 63 блокирует).
| Версия CSP | 2 |
|---|---|
| Тип директивы | Директива навигации |
default-src в качестве резервного значения | Нет. Если директива не задана, разрешено всё. |
Синтаксис
Content-Security-Policy: form-action 'none'; Content-Security-Policy: form-action <source-expression-list>;
Эта директива может принимать одно из следующих значений:
'none'-
Отправка форм запрещена. Одинарные кавычки обязательны.
<source-expression-list>-
Разделённый пробелами список значений исходных выражений. Формы можно отправлять на URL-адреса, соответствующие любому из указанных исходных выражений. Для этой директивы применимы следующие значения исходных выражений:
Примеры
>Настройка метатега
<meta http-equiv="Content-Security-Policy" content="form-action 'none'" />
Конфигурация Apache
<IfModule mod_headers.c> Header set Content-Security-Policy "form-action 'none';" </IfModule>
Конфигурация Nginx
add_header Content-Security-Policy "form-action 'none';"
Случай нарушения
Использование элемента <form> с действием, заданным как встроенный JavaScript, приведёт к нарушению CSP.
<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'".
-->
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
form-action |
40 | 15 | 36 | 27 | 10 | 40 | 36 | 27 | 9.3 | 4.0 | 40 | 9.3 |
blocks_redirects |
≤63 | 79 | Нет | ≤50 | ≤11.1 | ≤63 | Нет | ≤46 | ≤11.3 | ≤8.0 | ≤63 | ≤11.3 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/form-action