SSL и смешанный контент благодаря CSS фоновым изображениям - PullRequest
24 голосов
/ 10 октября 2009

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

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

Ответы [ 3 ]

31 голосов
/ 26 августа 2011

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

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

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

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

Источник: Пол Айриш - URL, относящийся к протоколу


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

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

В HTML

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

В CSS

div{background: url(//path/to/image.png);}
9 голосов
/ 10 октября 2009

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

1 голос
/ 27 ноября 2010

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

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

или

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...