Spec-Zone.ru › HTTP

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

См. также

  • Content-Security-Policy
  • Upgrade-Insecure-Requests заголовок
  • Strict-Transport-Security (HSTS) заголовок
  • block-all-mixed-content
  • Смешанное содержимое

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API