[html] Как разрешить HTTP-контент в iframe на сайте https



Answers

Примечание. Хотя это решение, возможно, работало в некоторых браузерах, когда оно было написано в 2014 году, оно больше не работает. Навигация или перенаправление на URL-адрес HTTP в iframe встроенный в HTTPS-страницу, не разрешены современными браузерами, даже если фрейм начал с URL-адреса HTTPS.

Лучшее решение, которое я создал, - просто использовать Google в качестве прокси-сервера ssl ...

https://www.google.com/search?q=%http://yourhttpsite.com&btnI=Im+Feeling+Lucky

Протестировано и работает в firefox.

Другие методы:

  • Используйте стороннюю сторонку, такую ​​как embed.ly (но она действительно хороша только для известных http API).

  • Создайте свой собственный скрипт переадресации на странице https, которую вы контролируете (простая переадресация javascript на соответствующей связанной странице должна сделать трюк. Что-то вроде: (вы можете использовать любой метод langauge /)

    https://example.com этого есть привязка iframe к ...

    https://example.com/utilities/redirect.html которого есть простой скрипт js redirect, например ...

    document.location.href ="http://thenonsslsite.com";

  • Кроме того, вы можете добавить RSS-канал или написать некоторый читатель / парсер, чтобы прочитать http-сайт и отобразить его на своем сайте https.

  • Вы можете / должны также рекомендовать владельцу сайта http, чтобы они создали соединение ssl. Если по какой-либо другой причине, чем это увеличивает SEO .

Если вы не можете заставить владельца веб-сайта создать сертификат ssl, самым безопасным и постоянным решением будет создание RSS-канала, в котором можно получить требуемый контент (по-видимому, вы на самом деле ничего не делаете на http-сайте, то есть скажем, не входить в систему).

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

Обратите внимание, что вы можете отключить эту меру безопасности в большинстве браузеров (самостоятельно, а не для других). Также обратите внимание, что эти «хаки» со временем могут устареть.

Question

Я загружаю некоторый HTML в iframe, но когда файл, на который ссылается, использует http, а не https, я получаю следующую ошибку:

[заблокировано] На странице {current_pagename} запущен небезопасный контент из {referenced_filename}

Есть ли способ отключить это или каким-либо образом обойти его?

В iframe нет атрибута src и содержимое устанавливается с использованием:

frame.open();
frame.write(html);
frame.close();






Если речь идет о нескольких и редко изменяющихся URL-адресах для внедрения в iframe , вы можете настроить прокси SSL для этого на своем собственном сервере и настроить его так, чтобы один URL-адрес https на вашем сервере сопоставлялся с одним http адресом http на прокси-сервере.

Например, я бы посмотрел на ngrok и mitmproxy для этого, так как они небольшие и простые в настройке (хотя обычно они предназначены для немного разных целей).




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

Один из способов сделать это - загрузить сервер содержимого и сохранить изображения и другие вещи на свой сервер и отобразить их с https.

Вы также можете попробовать использовать службу, например embed.ly, и получить контент через них. У них есть поддержка для получения контента за https.






Related