安全页面上iframe中的不安全内容

moo*_*gal 66 ssl iframe

我正在为客户开发应用程序,该客户端将拥有SSL证书并在https下提供服务.但是,要与现有网站集成,他们希望在iframe中提供导航.

我可以看到这会造成麻烦,因为我希望浏览器抱怨页面上安全和不安全内容的混合.我在这里看过类似的问题,他们似乎都反过来引用了这一点(iframe中的安全内容).

那么我想知道的是:它会导致问题是将不安全的内容包含在iframe中,放在安全页面上,如果是这样,它们会出现什么样的问题?

理想情况下,如果这不是一个好主意(我有一种强烈的感觉,它不是)我需要能够向客户解释这一点.

Amo*_*kar 44

如果您的网页是http,那么它允许使用带有https内容的iframe.

但如果您的网页是https,那么它不允许使用http内容.

让我们记下以下可能性.

page - iframe - status

http - http  - allowed
http - https - allowed
https- http  - not allowed
https- https - allowed
Run Code Online (Sandbox Code Playgroud)

  • https - https - 不安全的脚本 - 不允许 (4认同)
  • https - https - 允许 - 在[sc2vault.com]上确认(http://www.sc2vault.com/) (3认同)
  • https - https - inscure images - 允许 (3认同)

Bra*_*rad 28

如果使用https://www.example.com/main/index.jsp(SSL)访问您的页面,那么如果HTML代码中有任何资源http://(非SSL),您的浏览器将抱怨"此页面包含安全和不安全的项目" .这包括iframe.

如果您的导航页面托管在同一台服务器上,那么您可以使用这样的相对URL来阻止"不安全内容"消息...

<iframe src="/app/navigation.jsp" />
Run Code Online (Sandbox Code Playgroud)

从你的问题来看,你的导航页面听起来像是从一个单独的主机提供的,你被迫使用这样的东西

<iframe src="http://otherserver.example.com/app/navigation.jsp" />
Run Code Online (Sandbox Code Playgroud)

这当然会在浏览器中导致"不安全的内容"消息.

您唯一的解决方案是

  1. 在包含导航页面的服务器上实施SSL,以便您可以使用https://iframe引用,或

  2. 将导航应用程序移动到同一服务器,以便您可以使用相对URL.

就个人而言,我不明白为什么你的导航会在不同的主机上,因为那样你就会遇到JavaScript跨域脚本问题(除非涉及一些时髦的JSONP).

  • 与不能运行代码的第三方集成是一个很好的例子,可以说明何时需要比这更好的选择. (19认同)
  • `src ="/ app/navigation.jsp"方法是否要求iframe的内容在HTTPS下可用?但是根据OP,iframe是普通的HTTP. (2认同)