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

Последнее изменение: 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?
Просмотры: 279

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

Facebook Instagram linkedin

Beehosting.pro website uses cookies

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services.

Меню