GWT应用程序生成IE不安全项目警告

时间:2010-11-26 15:27:04

标签: internet-explorer gwt ssl https

我们的服务通过HTTPS运行,我们目前正在尝试在其中运行已编译的GWT应用程序,只有客户端,没有RPC:s。

它包含在IFRAME中,似乎是推荐的(例如:在HTTPS和HTTP标题下为http://developerlife.com/tutorials/?p=231)。

在GWT-app中执行某些操作时,它会生成一个不安全的项目警告。

http://bagonca.com/insecure_item.png

您可能会问自己为什么我不使用一些漂亮的Firefox插件来查看http可能会有什么请求。或者为什么我出于同样的原因不在Internet Explorer中使用HTTPWatch。我有。我无处可寻找任何不安全的请求。

另一方面,我读到的是Internet Explorer在没有设置src属性的情况下为iframe抛出此警告。对于动态填充的任何iframe,可能的修复方法是使用src =“javascript:false”。

正如我所说,整个应用程序都是通过IFRAME包含的,在其中GWT本身会生成一个隐藏的IFRAME,如下所示。

<iframe tabIndex="-1" id="gwt-app" src="javascript:''" style="border-bottom: medium none; position: absolute; border-left: medium none; width: 0px; height: 0px; border-top: medium none; border-right: medium none;">

我尝试将上面的src属性硬编码到实际存在的空白页面,并在同一域上使用HTTPS调用。我试过javascript:false;做法。没运气。该应用程序就像一个魅力,但IE抛出无用的,虚假的警告。

当我在应用程序中执行某些操作时,警告会出现,而不是在加载时。实际上在http://code.google.com/p/gwt-calendar/组件中拖放约会时。

之前有没有人纠结过类似的问题?有线索吗?

3 个答案:

答案 0 :(得分:2)

  

任何线索?

我不确定在这种情况下,但是我在大约一年前做过iframes(在一个有点类似的话题上)的一些实验。我认为,gwt-calendar尝试通过javascipt的parent引用与主页进行通信。主机页面未从同一来源(包括协议)加载时,AFAIR是不允许的。

答案 1 :(得分:2)

其他Javascript片段也可能导致问题。请参阅:

http://blog.httpwatch.com/2009/09/17/even-more-problems-with-the-ie-8-mixed-content-warning/

另外,请查看以下评论​​:

http://blog.httpwatch.com/2009/04/23/fixing-the-ie-8-warning-do-you-want-to-view-only-the-webpage-content-that-was-delivered-securely/

一些评论者也发现并修复了警告的其他原因。

答案 2 :(得分:0)

如果您的应用程序在 HTTPS 上运行并且正在通过纯 HTTP 获取图像或其他资源,则会发生这种情况。检查您是否将图像或css路径硬编码为http://。

例如,如果您的应用程序在https://example.com运行并且您希望加载图片foo.jpg,那么您应该使用的html是:

<img src="https://example.com/images/foo.jpg"/>

或(理想情况下)

<img src="images/foo.jpg"/>

而非

<img src="http://example.com/images/foo.jpg"/>

请注意,第三个示例通过 http 而不是 https 获取foo.jpg图像。因此,它会引起你所面临的问题。

要避免此类问题,最佳做法是使用ImageResources和相对网址。