Как исправить смешивание безопасного и небезопасного контента на веб-странице

Последнее изменение: Tuesday November 28th, 2023

Этот статья описывает проблему, которая возникает, когда посетители вашего веб-сайта запрашивают безопасную веб-страницу, содержащую небезопасные элементы.

Проблема

Когда посетители вашего веб-сайта запрашивают страницу с использованием безопасного соединения https://, в адресной строке веб-браузера может появиться сломанный замок. Кроме того, они могут получить предупреждение в своем браузере:

  • Mozilla Firefox: “Соединение с этим веб-сайтом не является полностью безопасным, поскольку оно содержит незашифрованные элементы (такие как изображения).”
  • Microsoft Internet Explorer: “Хотите просмотреть только содержимое веб-страницы, которое было доставлено безопасно? Эта веб-страница содержит контент, который не будет доставлен с использованием безопасного HTTPS-соединения, что может подвергнуть опасности безопасность всей веб-страницы.”
  • Google Chrome: “Ваше соединение с example.com зашифровано с использованием шифрования 256 бит. Однако эта страница включает другие ресурсы, которые не являются безопасными. Эти ресурсы могут быть просмотрены другими в процессе передачи и могут быть изменены злоумышленником для изменения вида страницы.”

Причина

Эта проблема возникает потому, что веб-страница содержит гиперссылки на небезопасные элементы. Например, рассмотрим веб-страницу, содержащую следующий HTML-фрагмент:

<a href="http://www.example.com/images/picture.jpg">Просмотреть мою картину</a>

В этом HTML-фрагменте гиперссылка ссылается на небезопасный http:// ресурс (файл .jpg). Если пользователь запрашивает эту страницу, используя https:// соединение, сама страница зашифрована, но связанный с ней файл изображения – нет. В результате страница содержит безопасный и небезопасный контент, и браузер отображает предупреждающее сообщение пользователю.

Эта проблема может возникнуть с любым типом связанного с гиперссылками ресурса: библиотекой JavaScript, файлом CSS и т. д.

Решение

Рассмотрите способы решения этой проблемы:

1: Отправка заголовка Content-Security-Policy непосредственно из веб-сервера

Чтобы решить эту проблему, вы можете отправить заголовок Content-Security-Policy в HTTP-ответе. Этот заголовок указывает веб-браузерам обновлять небезопасные запросы на HTTPS.

Для веб-серверов Apache на Linux добавьте следующие строки в файл .htaccess (или файлы), которые вы используете на своем веб-сайте:

<IfModule mod_headers.c>
    Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>

 

2: Отправка директивы Content-Security-Policy из исходных файлов страницы

Как альтернативу, вы можете использовать следующий мета тег в исходных файлах страниц вашего сайта:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

Дополнительная информация

Если вам нужна дополнительная информация о директиве upgrade-insecure-requests, посетите https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests.

Ищете надежную защиту для своего сайта? Получите правильный уровень защиты вместе с нашими вариантами SSL.

Was this article helpful?
Просмотры: 192

10 лет с BeeHosting!
Отмечаем скидками до 70% на все услуги
+ бесплатная миграция сайта.

Beehosting.pro сайт использует файлы «куки»

Мы используем файлы cookie, чтобы анализировать трафик, подбирать для вас подходящий контент и рекламу, а также дать вам возможность делиться информацией в социальных сетях. Мы передаем информацию о ваших действиях на сайте партнерам Google: социальным сетям и компаниям, занимающимся рекламой и веб-аналитикой. Наши партнеры могут комбинировать эти сведения с предоставленной вами информацией, а также данными, которые они получили при использовании вами их сервисов.

Меню