Небезопасный контент в iframe на защищенной странице - PullRequest
63 голосов
/ 14 февраля 2012

Я нахожусь в процессе разработки приложения для клиента, которое будет иметь сертификат SSL и обслуживаться по протоколу https.Однако для интеграции с существующим сайтом они хотят обеспечить навигацию внутри iframe.

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

Что я хотел бы знать, так это: будетЭто приводит к тому, что проблемы помещают небезопасный контент в iframe, помещают его на защищенную страницу, и если да, то какие это будут проблемы?

В идеале, если это не очень хорошая идея (и у меня есть сильное чувство, что это не так), я должен быть в состоянии объяснить это клиенту.

Ответы [ 3 ]

41 голосов
/ 26 февраля 2014

Если ваша страница http, тогда она разрешает iframe с содержимым https.

Но если ваша страница https, тогда она не разрешает контент http.

Позволяет отказаться от следующих возможностей.

page - iframe - status

http - http  - allowed
http - https - allowed
https- http  - not allowed
https- https - allowed
26 голосов
/ 13 июня 2012

Если доступ к вашей странице осуществляется с помощью https://www.example.com/main/index.jsp (SSL), то ваш браузер будет жаловаться на «Эта страница содержит как безопасные, так и незащищенные элементы», если в коде HTML есть ресурсы, на которые ссылается http:// (не -SSL). Это включает в себя iframes.

Если ваша навигационная страница размещена на том же сервере, вы можете предотвратить сообщение «Небезопасный контент», используя относительный URL-адрес, подобный этому ...

<iframe src="/app/navigation.jsp" />

Судя по вашему вопросу, ваша навигационная страница обслуживается с отдельного хоста, и вы вынуждены использовать что-то подобное

<iframe src="http://otherserver.example.com/app/navigation.jsp" />

, что, конечно, вызовет сообщение "Небезопасный контент" в вашем браузере.

Ваши единственные решения - либо

  1. внедрите SSL на сервере, на котором находится ваша страница навигации, чтобы вы могли использовать https:// для ссылки в iframe или

  2. переместите навигационное приложение на тот же сервер, чтобы вы могли использовать относительный URL.

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

0 голосов
/ 10 сентября 2015

Попробуйте удалить символы http: в значении атрибута src следующим образом:

<iframe src="//example.com/thefile.htm"></iframe>

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

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