IE обходной путь предупреждения? Страница с защищенными и незащищенными предметами - PullRequest
5 голосов
/ 06 февраля 2009

У меня есть страница, защищенная с помощью https в URL-адресе, которая также содержит URL-адреса YouTube для воспроизведения видео с YouTube. Поскольку URL-адрес YouTube содержит «http» без «s», IE выводит диалоговое окно с предупреждением «Эта страница содержит как защищенные, так и незащищенные элементы».

Есть ли способ обойти это в Javascript? Может быть, после загрузки страницы генерировать HTML-плеер YouTube с функцией? URL все равно должен начинаться с 'http://'

РЕДАКТИРОВАТЬ: Спасибо всем за вклад до сих пор! Я знаю, это звучит невозможно. Я был бы рад, если бы был какой-то условный комментарий или что-то еще, чтобы я мог сказать IE, чтобы закрыть это диалоговое окно. Это сбивает с толку наших клиентов, так как большая часть мира находится в IE, FF ведет себя намного лучше, так как сообщает вам, если вы нажмете сломанную блокировку, но не раздражающую всплывающую подсказку. Это похоже на новую версию «ваша программа выполнила недопустимую операцию». (пользователь скрывается от полиции) Я встраиваю видео YouTube на страницу, где src из YouTube. Я использую их плеер, так как он размещен ими. Я не вижу выхода из этого.

Я полагаю, что мое решение - применить HTTPS только к очень чувствительным страницам (смена пароля, логин) и выйти из него во всех остальных, чтобы видео на YouTube не показывали это всплывающее окно. Я нахожусь на PHP и волнуюсь, что СЕССИЯ будет засорена, если я сделаю это, но я думаю, что это единственный выход, и я буду ждать, чтобы заняться этим медведем понедельником.

Ответы [ 10 ]

6 голосов
/ 07 февраля 2009

Одна вещь, которую я сделал, чтобы обойти эту проблему, - это создать страницу на моем сайте SSL, которая прокси на стороннем ресурсе. Таким образом, клиент видит только URL-адреса SSL.

Например, ваш флэш-плеер может указывать на URL «https://YourSite.com/proxy.aspx?URL=http://www.youtube.com/video.swf".». Когда вызывается «proxy.aspx», он отправляет новый веб-запрос на URL-адрес в строке запроса и возвращает данные клиент.

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

4 голосов
/ 01 апреля 2011

Согласно этой недавней публикации в блоге API API , встроенные видео YouTube уже поддерживают доступ через HTTPS. Если это так (и я не проверял это, но в то же время у меня нет оснований не верить им), вы должны просто вставить «s» в ваш URL для встраивания, и он будет работать нормально.

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

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

1) Создайте миниатюрное изображение начала видео с тегом «Воспроизвести изображение» на снимке и разместите изображение на своем собственном сервере https. Вставьте миниатюру, где вы хотите, чтобы видео было.

2) Когда пользователь нажимает на изображение, вызовите обработчик Javascript onclick, чтобы создать новое окно с ссылкой на встроенное http-видео YouTube.

function onImgClickHandler() {
  //Link to embedded Viddler or Youtube video
  var win = window.open("http://www.viddler.com/player/###/", "My Video",
    'height=500,width=800,resizable=yes,scrollbars=yes');
  win.focus();
}

3) Видео теперь появится во всплывающем окне главной страницы.

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

Надеюсь, это поможет, у меня есть пример выше на целевой странице моего сайта: https://drchrono.com/

ОБНОВЛЕНИЕ: я сделал предварительный просмотр изображения, сделав снимок экрана с воспроизводимым видео.

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

Если бы был способ обойти это, то в IE был бы недостаток безопасности, и Microsoft исправила бы его, так что я не думаю, что вы избежите неприятностей со смешанным контентом и без предупреждения.

Единственная альтернатива - разместить FLV самостоятельно. Есть несколько хороших FLV-плееров на базе SWF.

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

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

<% if (!Request.IsSecureConnection){ %>
    <div>You can't see this if the page is secure<div>
<%} %>

Я использовал этот метод с большим успехом ... Надеюсь, это поможет.

1 голос
/ 10 апреля 2012

У меня была такая же проблема, и я нашел решение.

Работает без включения SSL-сертификации.

Пошаговое руководство по исправлению Google Chrome

Вы можете просмотреть фиксированную страницу, указанную ниже. Он имеет ссылки на YouTube, Flickr и многие другие сайты. Это безопасно и было в течение нескольких месяцев. Надеюсь, вам это тоже поможет.

1 голос
/ 08 июня 2010

Модуль mod_rewrite сервера Apache httpd можно использовать для встраивания видео YouTube на защищенные страницы SSL без каких-либо ошибок, как подробно описано в блоге Адама Мершона .

Включает настройку правила перезаписи для перенаправления пути в домене SSL на YouTube без SSL:

.htaccess

RewriteEngine on
RewriteBase /
RewriteRule ^youtube/(.*)$ http://www.youtube.com/$1 [L]

Таким образом, в ваш HTML-код можно встроить URL-адреса ссылок YouTube, которые выглядят как принадлежащие вашему собственному домену, например:

<embed src="https://www.yourdomain.com/youtube/v/mydjFYoD4WS&hl=en_US&fs=1&rel=0&autoplay=1&"
       type="application/x-shockwave-flash"
       allowscriptaccess="always"
       allowfullscreen="true"
       width="560"
       height="340">
</embed>
0 голосов
/ 01 апреля 2011

Это серьезная проблема в моем мире. Он получает мои рабочие комментарии от таких пользователей, как «Это не удобно», «Он сломан» или «Он убил моего котенка».

Прокси-решение, вероятно, является единственным псевдо-исправлением, которое выйдет. Просто это тоже явно не идеальное решение.

Я пытаюсь справиться с этим немного лучше, запустив как можно больше моих сайтов на https. Очевидно, что случай с YouTube не исправлен.

То есть, что за глупый кусок мерзавца, толкающего ФУД. Я надеюсь, что IE9 действительно намного лучше, чем кажется. Просто не поддержка XP означает, ну, вроде как она никогда не была выпущена. Как самый лучший из пользователей, невольно защищает статус-кво от записи до тех пор, пока Chineese Skynet на базе XP 2247 года окончательно не накормит нас красной таблеткой ...

0 голосов
/ 07 февраля 2009

Использование Javascript для замены URL не работает. IE7 перехватывает содержимое, а затем предупреждение.

Я пытался использовать (jQuery) $ (function () {}); это sortof работает. Вы можете нажать да / нет в диалоговом окне, тем не менее, содержимое будет загружено.

0 голосов
/ 07 февраля 2009

Ваша проблема возникает, когда главная страница захватывается с использованием Https, а один или несколько включенных файлов (изображения, javascript, css и т. Д.) Выбираются с использованием http. Исправьте URL-адрес http, чтобы быть https.

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