Свяжитесь с файлами CSS через домены без смешанного предупреждения содержания в IE?

Мои сайты убегают субдомен (yyy.example.com), но я обязан включать файлы CSS от основного домена (example.com). Мы выполняем CMS, который не позволяет мне сделать любой материал серверной стороны во время этапа предварительного просмотра, таким образом, я застреваю, отправляя страницу по https, который включает импорт CSS в http. Все мои пользователи IE получают смешанное предупреждение содержания из-за этого.

Есть ли какая-либо сторона клиента способ для меня предотвратить это кроме поддержания отдельных настроек безопасности для домена на каждой клиентской машине?

7
задан SW4 21 May 2014 в 11:12
поделиться

3 ответа

Использовать в CSS ссылках протоколоотносительные URL'ы.

Таким образом

<link rel="stylesheet" type="text/css" href="//example.com/style.css">

вместо

<link rel="stylesheet" type="text/css" href="http://example.com/style.css">

Он автоматически выберет протокол родительского запроса, который должен работать нормально и для HTTPS.

.
9
ответ дан 6 December 2019 в 15:23
поделиться

Насколько я знаю, нет способа избежать этого предупреждения. Оно есть, в частности, для этой цели: предупредить вас о том, что даже если вы считаете, что ваша страница зашифрована по SSL, часть ее содержимого не зашифрована. Вам необходимо либо обслуживать оригинальную страницу по HTTP (не рекомендуется), либо обслуживать CSS-файл по HTTPS.

.
3
ответ дан 6 December 2019 в 15:23
поделиться

Когда вы говорите, что не можете делать вещи "на стороне сервера", вы имеете в виду, что не можете прикасаться к вашему CMS, или что у вас нет корневого доступа к вашему HTTP серверу?

Потому что если у вас есть доступ к вашему HTTP серверу, вы можете настроить очень простой обратный прокси (с помощью mod_proxy, если вы используете Apache). Это позволит вам использовать относительные пути в вашем HTML, в то время как HTTP-сервер будет действовать как прокси к любому "удаленному" местоположению. Фактически, эта техника также может быть использована для уменьшения некоторых проблем межсайтового скриптинга.

Фундаментальной конфигурационной директивой для установки обратного прокси в mod_proxy является ProxyPass. Обычно вы используете ее следующим образом:

ProxyPass     /css/     http://example.com/css_dir/

В этом случае браузер будет запрашивать https://yyy.example.com/css/main.css, но сервер будет обслуживать его, действуя в качестве прокси-сервера для http://example.com/css_dir/main.css. Он не будет вызывать предупреждение браузера и прекрасно работает с SSL.

.
1
ответ дан 6 December 2019 в 15:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: