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

我正在为客户端开发一个应用程序,这个客户端将有一个SSL证书,并在https下提供服务。 但是,要与他们现有的网站进行整合,他们希望在iframe中提供他们的导航。

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

那么我想知道的是:它会引起问题,将不安全的内容包含在iframe中,放在安全的页面上,如果是的话,会是什么样的问题?

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

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

如果您的导航页面托pipe在同一台服务器上,那么您可以通过使用像这样的相对URL来防止“不安全的内容”消息…

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

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

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

这当然会导致浏览器中的“不安全的内容”消息。

你唯一的解决办法是要么

  1. 在持有导航页面的服务器上实现SSL,以便您可以使用https://作为您的iframe引用或

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

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

如果你的页面是http,那么它允许带有https内容的iframe。

但是,如果你的网页是https,那么它不允许http内容。

让我们放下以下的可能性。

 page - iframe - status http - http - allowed http - https - allowed https- http - not allowed https- https - allowed 

尝试删除src属性值中的http:字符,如下所示:

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

这当然是一个解决方法,安全是重要的,所以不要轻易绕过,但无论如何,这曾经让我经历了类似的问题。