Как можно избежать предупреждения «Эта страница содержит как безопасные, так и незащищенные элементы» в моем браузере? - PullRequest
8 голосов
/ 26 февраля 2009

Мы подумываем о включении SSL на нашем веб-сайте, но на некоторых страницах размещены объявления сторонних поставщиков (например, Google AdSense).

Я думаю, что это создаст раздражающую проблему для наших пользователей, так как они будут видеть предупреждающее сообщение типа «Эта страница содержит как безопасные, так и незащищенные элементы» при просмотре страницы с рекламой. Однако, когда я захожу в Gmail с https вместо http, я не вижу это предупреждение в Firefox.

Кто-нибудь знает, как Gmail скрывает это?

Ответы [ 6 ]

19 голосов
/ 26 февраля 2009

на некоторых страницах размещены объявления сторонних поставщиков (например, Google AdSense)

Тогда браузер прав - это не безопасно.

В AdSense и большинстве других рекламных сетей вам предоставляется ссылка на JavaScript. Когда вы ссылаетесь на любой внешний , вы полностью доверяете содержимому вашей страницы внешнему поставщику сценариев. Вы должны доверять им, чтобы они делали только то, что, по их словам, они собираются делать (показывать рекламу), а не что-то гнусное, например, взятие формы входа со страницы, на которой он находится, и кража значений, которые вы вводите в нее, или, если Сценарий «ad» был включен на страницу вашего банковского счета, автоматически опустошая все ваши деньги.

Таким образом, внешние сценарии представляют собой проблему доверия, но если вы используете поставщика, который предоставляет HTTPS-интерфейс для своих объявлений, то, по крайней мере, вы должны доверять только одной известной стороне. Если у рекламодателя есть только HTTP-интерфейс, то вы отправляете свое доверие любому, кто может получить контроль с помощью атаки типа «человек посередине» или подобной. Вы фактически снижаете уровень доверия всей своей страницы до уровня обычного незашифрованного HTTP, поэтому браузер совершенно правильно заявляет, что страница на самом деле не более безопасна, чем любой старый сайт HTTP.

15 голосов
/ 26 февраля 2009

Документация Google указывает, что это известная проблема и не предлагает обходного пути: https://www.google.com/adsense/support/bin/answer.py?answer=10528

4 голосов
/ 26 февраля 2009

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

Поскольку обработчик размещен в SSL, он может извлечь html и направить его обратно в браузер через SSL. по сути, он действует как маленький прокси для вас.

В прошлом я делал это для ряда проектов, чтобы получить доступ к файлам из сети, не раскрывая действительную сеть.

используя информацию здесь: http://www.csharp -station.com / HowTo / HttpWebFetch.aspx вы можете легко адаптировать его для получения параметра (фактического URL, который вы хотите получить) ...

так что на вашей отрендеренной странице вы бы назвали https://my.domain.com/pages/HttpWebFetch.aspx?url=http://ads.google.com/, а затем HttpWebFetch.aspx получит и ретранслирует содержимое страницы через https, удаляя безопасные / незащищенные предупреждения.

3 голосов
/ 26 февраля 2009

Так как это ответ для Analytic, вы можете использовать его, чтобы не показывать рекламу на ваших защищенных страницах

if ("http:" == document.location.protocol) { /*show your adds here*/ }

Я получил эту идею от того, как я делаю аналитику на своих сайтах

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

Я признаю, что это означает, что вы не можете показывать рекламу на своих защищенных страницах, но вы, вероятно, не хотите, чтобы Google читал содержимое ваших защищенных страниц и в любом случае показывал рекламу. (Это коп и оправдание для Google, но, как уже упоминалось, они просто не поддерживают его)

Чтобы ответить на ваш вопрос по GMail ... (здесь используется Firebug, чтобы я мог неправильно это интерпретировать)

  1. Я вхожу в Gmail с всегда безопасным соединением. Нет объявлений.
  2. Я включаю консоль, чтобы увидеть, какие соединения устанавливает gmail.
  3. Я очищаю консоль
  4. Я нажимаю на сообщение с рекламой, показанной справа.

Gmail сделал только два звонка. Сначала получите https://mail.google.com, который, как я предполагаю, является моей электронной почтой. Второй был POST к https://mail.google.com/mail/channel/

Я предполагаю (все остальные меня поправляют) Gmail запрашивает сообщение у прокси-сервера, который обслуживает рекламу.

GMail отправляет контент на прокси, прокси получает рекламу, прокси отправляет контент обратно в Gmail. Все секурно.

ВСЕГО УГАДАЙТЕ

Спасибо за понижение голосов, но не объяснил, что не помогло

2 голосов
/ 26 февраля 2009

"Кто-нибудь знает, как Gmail скрывает это?"

Краткий ответ: они используют https для получения рекламы. Просматривая вкладку "Сеть" в Firebug для загрузки страницы GMail, я вижу объявления, которые находятся на странице в запросе с URL https://mail.google.com/mail/?ui=2&ik=bbff8a9f5c&view=ad&ak=is00jux7yq7kgk730lqdkxklz03d9d8, поэтому похоже, что у них есть способ показа объявлений через https *. 1008 * но только для собственных сайтов .

0 голосов
/ 17 августа 2011

После изменения всех моих http: // на https: // (или относительно) у меня все еще была эта проблема, в конце концов я понял, что это из-за кеширования. Я обновил кеш браузера и все было в порядке. Кроме того, кажется, что ваши ссылки (href = что угодно) могут быть http, это может быть очевидно для большинства, но я сначала не был уверен:)

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