Подтвердить что ты не робот

SSL и смешанный контент из-за фоновых изображений CSS

У меня есть веб-страница, содержащая форму ввода. HTTPS включен с помощью перенаправления Apache для всех запросов, соответствующих этой странице. К сожалению, поскольку CSS рисует внешние изображения, используя "background-image: url (/images/...)", браузер генерирует предупреждающее сообщение о том, что страница содержит смешанный контент.

Какой лучший способ решить эту проблему?

4b9b3361

Ответ 1

Обновление 2014.12.17:

Теперь, когда SSL поощряется для всех и не имеет производительности проблемы, этот метод теперь является анти-шаблоном. Если ресурс, который вам нужен, доступен в SSL, всегда используйте ресурс https://.

Разрешающий фрагмент запроса по HTTP открывает дверь для атак как недавняя атака Github Man-on-the-side. Его всегда безопасен для запрашивать активы HTTPS, даже если ваш сайт находится на HTTP, однако обратный не соответствует действительности.

Дополнительные указания и подробности в Руководство Eric Mills для CDN и HTTPS.

Источник: Paul Irish - относительный URL-адрес протокола


Вот очень популярное решение:

Вот этот маленький трюк, с которым вы можете избавиться, это избавит вас от головной боли:

В HTML

<img src="//domain.com/img/logo.png">

В CSS

div{background: url(//path/to/image.png);}

Ответ 2

Вы также должны включить HTTPS для своих статических ресурсов, а затем убедитесь, что <link> явно ссылается на URL-адрес HTTPS для ресурса CSS (чьи относительные URL-адреса будут интерпретироваться относительно базы HTTPS файла CSS).

Ответ 3

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

https://your.domain.com/img/image.png`

или

https://your.domain.com/route/to/img/image.png

Это решило мою проблему некоторое время назад.