HTTPS-соединение «небезопасно» из-за изображений

14

В настоящее время я работаю над веб-сайтом и успешно установил свой SSL-сертификат.

Проверка GeoTrust SSL / TLS подтвердила, что цепочка сертификатов (включая CA) установлена ​​правильно. В Chrome все выглядит нормально, но мой замок не зеленый, а в Firefox фактически говорится, что веб-сайт не защищен, потому что на нем есть незашифрованные элементы.

Я использовал онлайн-сервис, чтобы проверить, почему это так, и оказалось, что мои изображения действительно не считаются безопасными URL-адресами. Как мне справиться с этой ситуацией, иначе как безопасно вставлять изображения на мой сайт?

mti_
источник

Ответы:

32

Ваши теги изображений должны выглядеть примерно так:

<img src="http://example.com/images/image.jpg">

Это httpозначает, что изображение НЕ обслуживается надежно. Злоумышленник может изменить изображение при передаче и тем самым изменить внешний вид вашей защищенной страницы для ваших пользователей.

Вместо этого вы можете использовать любой из следующих способов для безопасного обслуживания изображений:

  • Ссылка httpsявно:<img src="https://example.com/images/image.jpg">
  • Используйте относительные ссылки на изображения в вашем собственном домене: <img src="/images/image.jpg">
  • Используйте протокол относительного связывания для использования изображений из других доменов: <img src="//example.com/images/image.jpg">

Явное httpsвсегда будет обслуживать изображение безопасно (даже если страница не обслуживается надежно), в то время как относительные ссылки будут обслуживать изображение надежно, только если страница обслуживается надежно.

В Firefox и Chrome вы можете нажать на замок и получить больше информации о проблеме. Сделав это, вот скриншот из Firefox, показывающий список всех изображений на странице. Список легко просмотреть и посмотреть, какие из них http:

Стивен Остермиллер
источник
2
«Злоумышленник может изменить изображение при передаче и, таким образом, изменить внешний вид вашей защищенной страницы для ваших пользователей». - или даже вызвать уязвимость в рендере.
Джон Дворжак
2
И взломать куки, которые могут включать токены доступа.
Darkhogg
Это звучит очень похоже на то, что рекомендуется делать это. Благодаря вам я смог получить свой зеленый замок, но друг сказал, что шифрование изображений может замедлить страницу. Это проблема в моем случае?
mti_
3
Конечно, есть некоторые накладные расходы на шифрование, однако в наши дни оно обычно не превышает 10%. Это снижение производительности (даже для изображений) - это цена, которую вы должны заплатить за безопасный сайт.
Стивен Остермиллер
whynopadlock.com - это удобный инструмент для быстрого определения незащищенных ресурсов по определенному URL-адресу.
Ville
5

Проблема в том, что ваша страница обслуживает ссылки с http-адреса, а не https. Это связано с использованием абсолютных http ссылок на справочные ресурсы, такие как изображения. Есть два лучших метода, которые позволят вам ссылаться на ссылки в http или https и избежать этой проблемы.

Требуется найти эти ссылки и изменить их на:

  1. относительные ссылки: т.е./wp-content/yourtheme/images/image1.jpg
  2. или поместите // в начало домена, как в разделе.//example.com/wp-content/wp-content/yourtheme/images/image1.jpg Затем эти ресурсы будут обслуживаться через http или https в зависимости от того, какой запрос был сделан.

Как в Chrome, так и в Firefox вы можете щелкнуть значок замка, а затем щелкнуть по нему, чтобы просмотреть список оскорбительных небезопасных ссылок. И если вы не видите никаких изображений или других ресурсов, выделенных в браузере, но по-прежнему получаете ошибки, вы можете обнаружить, что существует вызов javascript, который ссылается на ссылки абсолютно через http .

огороженное место
источник
2
//в начале это не стандартно, и браузеры, такие как Lynx, будут жаловаться.
Мирабилось
2
@mirabilos RFC 1808 является стандартом для URL-адресов и определяет относительные ссылки протокола (начиная с //) в разделе 2.4.3. Стандарту уже 15 лет, и он применяется во всех основных браузерах, включая Lynx
Стивен Остермиллер
#mirabilos Проверьте рекомендуемые ссылки на репозиторий Google. Вы обнаружите, что Google использует их в течение многих лет.
Гарт
1

Это действительно просто. Когда вы создаете веб-сайты, обслуживаемые по протоколу SSL (https), любая ссылка в вашем коде, которая не содержит префикса https, вызовет предупреждения безопасности - кроме ссылок. Обратите внимание, что большинство (все) браузеры также по умолчанию относительные ссылки на http. Так что если вы ссылаетесь на /uploads/12/5/img.jpg или /js/jquery.js, то протокол передачи по умолчанию будет http - что действительно раздражает.

Все браузеры обрабатывают предупреждения немного по-разному, но вы получите какое-то сообщение. Общим утверждением будет то, что чем новый браузер, тем более серьезным будет сообщение. Некоторые старые браузеры практически игнорируют эти ошибки, в то время как новые браузеры могут вести себя так, как будто ваш мир подвергается атаке из-за пропущенных «s».

blankip
источник
10
"большинство (все) браузеры также по умолчанию относительные ссылки на http" Err, что? Абсолютно все браузеры, если они не сломаны, будут использовать текущий протокол, если вы не укажете новый явно.
Волков Олег Васильевич
5
Олег прав; это не "раздражает": это совершенно неправильно.
Легкость гонки с Моникой
3
Это совершенно неправильно. Не обращайте внимания на этот ответ.
martijnve
@martijnve - Как мой ответ неверен?
blankip
4
@blankip см. комментарий Олега Волкова. Любая ссылка, включающая http, неверна. ВСЕ другие в порядке. (относительный протокол, относительный домен, относительный путь). И вы должны использовать относительные ссылки почти во всех случаях.
martijnve
1

Если ни одно из этих предложений не помогает, когда дело доходит до невозможности отображать изображения после того, как вы включили SSL на своей веб-странице, проверьте на всякий случай настройки cPanel для «Горячих ссылок», которые находятся в разделе «Безопасность» cPanel. Вполне возможно, что в этом параметре у вас есть следующее: http://example.comи http://www.example.comвы разрешаете доступ к изображениям, пока их httpsверсия не включена.

Веб-мусор
источник
-4

Проверьте конфигурацию протокола защищенного URL в вашем cms / wordpress / magento или любой другой платформе, которую вы используете. Вы также можете поделиться некоторыми тегами изображений, но базовые изображения img src не дают таких ошибок.

Структура тега изображения важна, но в центре вашего вопроса я думаю, что она относится к типу сертификата SSL, установленному на вашем сайте. Со мной произошел личный случай со «стандартным сертификатом GoDaddy SSL».

Вы увидите значок предупреждения в строке поиска URL (в частности) Firefox, говорящий о том, что на вашем сайте могут быть небезопасные изображения или элементы. Насколько я знаю, вопрос только в том, как firefox обрабатывает информацию о сертификате или информацию, содержащуюся в нем. Этого не происходит в Safari, Chrome или других браузерах. Я нашел решение для этого, установив вместо «Стандартного SSL» «Сертификат Premium SSL или расширенный сертификат проверки EVC », в котором содержится более подробная информация о компании, занимающейся сайтами. Вы получите зеленый замок, безопасный URL-бар.

Однако премиальный ssl-сертификат может быть немного дороже, около 150-200 долларов в год.

введите описание изображения здесь

Gaio RoOts
источник
5
Это не так, потому что: 1) теги <img src = "..."> действительно могут выдавать такую ​​ошибку, если вы вводите URL-адрес HTTP (в отличие от URL-адреса HTTPS) и 2) тип сертификата или как это обрабатывается, не имеет к этому
никакого отношения
Я использую для img src глобальные медиа-теги, такие как {{media url = "path / to / image.jpg"}} с протоколом ssl или без него, и я не получаю ошибок. Кстати, я указываю на ошибку Стивена Firefox ssl отображается. С уважением.
Gaio RoOts
3
Если вы используете относительные URL, проблем нет, потому что они относительные. Пожалуйста, прочитайте другой ответ. Я знаю, что вы имеете в виду ошибку Стивена. Типы сертификатов по-прежнему не имеют к этому никакого отношения.
fNek
Тип сертификата не влияет на так называемое «предупреждение о смешанном контенте». Кроме того, все современные браузеры в наши дни показывают предупреждение, некоторые явно, другие просто отказываются показывать значок блокировки.
Мартейн Химельс