CSP: upgrade-insecure-requests
CSP: upgrade-insecure-requests
Директива HTTP Content-Security-Policy (CSP) upgrade-insecure-requests предписывает пользовательским агентам обрабатывать все небезопасные URL-адреса сайта (те, что передаются по протоколу HTTP) так, как будто они были заменены на безопасные URL-адреса (те, что передаются по протоколу HTTPS). Данная директива предназначена для веб-сайтов с большим количеством небезопасных устаревших URL-адресов, которые необходимо переписать.
Примечание: Директива upgrade-insecure-requests выполняется до block-all-mixed-content, и если она установлена, последняя фактически становится бесполезной. Рекомендуется установить одну из директив, но не обе, если вы не хотите принудительно использовать HTTPS в старых браузерах, которые не делают этого после перенаправления на HTTP.
Директива upgrade-insecure-requests не гарантирует, что пользователи, посещающие ваш сайт по ссылкам на сторонних сайтах, будут переведены на HTTPS для навигации по сайту верхнего уровня, и, следовательно, не заменяет заголовок Strict-Transport-Security (HSTS), который все равно должен быть установлен с соответствующим max-age для предотвращения атак SSL-стриппинга.
Синтаксис
Content-Security-Policy: upgrade-insecure-requests;
Примеры
Использование HTTP-заголовка
Content-Security-Policy: upgrade-insecure-requests;
Использование тега meta HTML
<meta
http-equiv="Content-Security-Policy"
content="upgrade-insecure-requests" />
При установке указанного заголовка на домене example.com, который хочет перейти с HTTP на HTTPS, небезопасные запросы к ресурсам (кроме навигационных) автоматически обновляются (как для запросов с вашего сайта, так и для запросов со сторонних сайтов).
<img src="http://example.com/image.png" /> <img src="http://not-example.com/image.png" />
Эти URL-адреса будут переписаны до отправки запроса, что означает, что никакие небезопасные запросы не будут отправлены в сеть. Обратите внимание, что если запрашиваемый ресурс фактически недоступен по протоколу HTTPS, запрос завершится неудачей без какого-либо возврата к HTTP.
<img src="https://example.com/image.png" /> <img src="https://not-example.com/image.png" />
Навигационные обновления для ресурсов сторонних сайтов имеют значительно более высокий потенциал для ошибок; они не обновляются:
<a href="https://example.com/">Home</a> <a href="http://not-example.com/">Home</a>
Поиск небезопасных запросов
С помощью заголовка Content-Security-Policy-Report-Only и директивы report-uri вы можете настроить политику принудительного выполнения и политику отчётности следующим образом:
Content-Security-Policy: upgrade-insecure-requests; default-src https: Content-Security-Policy-Report-Only: default-src https:; report-uri /endpoint
Таким образом, вы все равно обновляете небезопасные запросы на вашем защищённом сайте, но политикой отслеживания нарушается только политика отчётности, и небезопасные ресурсы сообщаются вашему конечному пункту.
Спецификации
| Спецификация |
|---|
| Upgrade Insecure Requests # доставка |
Совместимость с браузерами
| Десктоп | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
upgrade-insecure-requests |
43 |
17 |
42 |
Нет |
30 |
10.1 |
43 |
43 |
42 |
30 |
10.3 |
4.0 |
См. также
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests