{% +includecode +content_path="web/fundamentals/security/prevent-mixed-content/_code/image-gallery-example.html" +region_tag="snippet1" adjust_indentation="auto" %}+ +[Попробуй +это](https://googlesamples.github.io/web-fundamentals/fundamentals/security/prevent-mixed-content/image-gallery-example.html) +{: target="_blank" .external } + +В приведенном выше коде, может показаться безопасно оставить атрибут `href` тэга +`` как `http://`; однако, если вы посмотрите образец и нажмете на +изображение, вы увидите, что он загружает смешанный ресурс контента и отображает +его на странице. + +## Массовая обработка смешанного содержимого + +Шаги, описанные выше, хорошо подходят для небольших сайтов; но для крупных +веб-сайтов или сайтов с множеством отдельных групп разработчиков может быть +сложно отслеживать весь загружаемый контент. Чтобы справиться с этой задачей, вы +можете использовать политику безопасности содержимого, чтобы дать браузеру +указание уведомлять вас о смешанном содержимом и гарантировать, что ваши +страницы никогда не будут неожиданно загружать небезопасные ресурсы. + +### Политика безопасности контента + +[**Политика безопасности контента**](/web/fundamentals/security/csp/) (Content +Security Policy - CSP) - это многоцелевая функция браузера, которую можно +использовать для массового управления смешанным контентом. Механизм отчетов CSP +может использоваться для отслеживания смешанного контента на вашем сайте; и +политика защиты, чтобы защитить пользователей путем обновления или блокировки +смешанного контента. + +Вы можете включить эти функции для страницы, включив заголовок +`Content-Security-Policy` или `Content-Security-Policy-Report-Only` в ответ, +отправленный с вашего сервера. Кроме того, вы можете установить +`Content-Security-Policy` (но **не** `Content-Security-Policy-Report-Only` ), +используя `` в разделе `` вашей страницы. Смотрите примеры в +следующих разделах. + +CSP полезен для многих вещей за пределами смешанного контента. Информация о +других директивах CSP доступна на следующих ресурсах: + +- [Введение CSP от +Mozilla](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Introducing_Content_Security_Policy) +{: .external} +- [Введение CSP от HTML5 +Rocks](//www.html5rocks.com/en/tutorials/security/content-security-policy/) {: +.external} +- [CSP песочница](http://www.cspplayground.com/) {: .external } +- [CSP спецификация](//www.w3.org/TR/CSP/) {: .external } + +Note: Браузеры применяют все политики безопасности содержимого, которые +они получают. Несколько значений CSP заголовка, полученного браузером в +заголовке ответа или элементах
+объединяются в единую политику; Политики отчетности также комбинируются.
+Политики объединяются путем пересечения политик; то есть каждая политика после
+первой может только ограничивать разрешенный контент, а не расширять его.
+
+### Поиск смешанного контента с политикой безопасности контента
+
+Вы можете использовать политику безопасности контента для сбора отчетов о
+смешанном контенте на вашем сайте. Чтобы включить эту функцию, установите
+директиву `Content-Security-Policy-Report-Only` , добавив ее в качестве
+заголовка ответа для вашего сайта.
+
+Заголовок ответа:
+
+```
+Content-Security-Policy-Report-Only: default-src https: 'unsafe-inline' 'unsafe-eval'; report-uri https://example.com/reportingEndpoint
+```
+
+Каждый раз, когда пользователь посещает страницу на вашем сайте, его браузер
+отправляет отчеты в формате JSON, касающиеся всего, что нарушает политику
+безопасности контента, на `https://example.com/reportingEndpoint` . В этом
+случае каждый раз, когда подресурс загружается по HTTP, отправляется отчет. Эти
+отчеты включают URL-адрес страницы, где произошло нарушение политики, и
+URL-адрес подресурса, который нарушил политику. Если вы настроите свою конечную
+точку отчетности для регистрации этих отчетов, вы можете отслеживать смешанный
+контент на своем сайте, не посещая каждую страницу самостоятельно.
+
+Два предостережения:
+
+- Пользователи должны посетить вашу страницу в браузере, который понимает
+заголовок CSP. Это верно для большинства современных браузеров.
+- Вы получаете отчеты только для страниц, посещенных вашими пользователями. Так
+что если у вас есть страницы, которые не получают много трафика, может пройти
+некоторое время, прежде чем вы получите отчеты по всему сайту.
+
+Дополнительные сведения о формате заголовка CSP см. в [спецификации политики
+безопасности
+содержимого](https://w3c.github.io/webappsec/specs/content-security-policy/#violation-reports)
+{: .external}.
+
+Если вы не хотите настроить конечную точку отчетности самостоятельно,
+[https://report-uri.io/](https://report-uri.io/) {: .external} является разумной
+альтернативой.
+
+### Обновление небезопасных запросов
+
+Одним из новейших и лучших инструментов для автоматического исправления
+смешанного контента является директива CSP
+[**`upgrade-insecure-requests`**](//www.w3.org/TR/upgrade-insecure-requests/) {:
+.external}. Эта директива указывает браузеру обновить небезопасные URL-адреса
+перед выполнением сетевых запросов.
+
+Например, если страница содержит тег изображения с URL-адресом HTTP:
+
+```
+https://example.com/image.jpg
, что обезопасит
+пользователя от смешанного содержимого.
+
+Вы можете включить это поведение, отправив заголовок `Content-Security-Policy` с
+этой директивой:
+
+```
+Content-Security-Policy: upgrade-insecure-requests
+```
+
+Или путем встраивания той же самой директивы inline в раздел `` документа
+с использованием элемента `` :
+
+```
+
+```
+
+Стоит отметить, что если ресурс недоступен по HTTPS, обновленный запрос
+завершается неудачно и ресурс не загружается. Это поддерживает безопасность
+вашей страницы.
+
+Директива `upgrade-insecure-requests` каскадно переходит в документы `