2016-01-27 6 views
1

Я пытаюсь вставить iframe (содержащий shellinabox, если это необходимо) на веб-страницу HTTPS. HTML я использую, чтобы встроить IFRAME довольно проста:iframe заблокирован как небезопасный контент, хотя iframe является HTTPS

<div class="jumbotron" style="min-height: 400px;"> 

    <iframe src="https://example.com/shellinabox" style="border:none; min-height: 400px;" width="100%"></iframe> 
</div> 

Однако Chrome блокирует Iframe от нагрузки, потому что это «небезопасное содержание», и я должен вручную разблокировать его для того, чтобы работать. Chrome консоль сообщает об ошибке, как это:

Mixed Content: The page at 'https://example.com/mainpage/' was loaded over HTTPS, but requested an insecure resource 'http://example.com/shellinabox/'. This request has been blocked; the content must be served over HTTPS. 

Я смущен, потому что это явно мой HTML-код встраивания версии HTTPS в example.com/shellinabox. Более того, когда я непосредственно нахожусь https://example.com/shellinabox, значок блокировки зеленый, ничего не заблокировано, и на этой странице нет никаких сообщений о каких-либо проблемах с SSL.

Я также тестировал это в Firefox, IE и MS edge, и все они имеют одинаковое поведение (так что это не проблема Chrome). Что дает?

+0

https://developers.google.com/web/fundamentals/security/prevent-mixed-content/fixing-mixed-content – Tom

ответ

2

ваш код загружает страницу через https, но эта страница, вероятно, пытается загрузить дополнительные скрипты или активы через http. или у него могут быть сценарии на странице, которые делают запросы ajax по http. вам нужно будет изучить страницу и посмотреть в консоли разработчика, чтобы точно узнать, что такое небезопасные запросы. это, вероятно, не проблема с тем, как вы создаете элемент iframe.

+0

Если я открою консоль разработчика на встроенной странице, появится единственная ошибка, которая появляется 'Отказано для установки небезопасного заголовка Content-Length.'. – tlng05

+0

@ tlng05 - Вы попытались открыть консоль dev после просмотра непосредственно на https://example.com/shellinabox? Затем в разделе сети вы должны увидеть все ресурсы (защищенные или небезопасные), которые он пытается загрузить. – david

1

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

Для меня мой маршрут на моем сервере флагов python закончился символом «/». В моем iframe я вызывал маршрут без косой черты в конце src и видел ту же ошибку. Добавление косой черты в src в iframe сделало трюк для меня.

<iframe src="https://example.com/shellinabox/" style="border:none; min-height: 400px;" width="100%"></iframe> 

Я не совсем уверен, почему недостающая косая черта в конце атрибута src вызовет эту ошибку. Если кто-нибудь может объяснить, почему, я с удовольствием обновлю свой ответ.

+0

Спасибо, была та же проблема в приложении IIS/ASP.NET. После проверки заголовков я увидел, что есть перенаправление https -> http в цепочке перенаправления (перенаправление, которое добавляет «/» для запросов в папках). – Guillaume86

Смежные вопросы