去除IE浏览器对SSL加密https网页的警告

去除IE浏览器对SSL加密https网页的警告IE8在浏览SSL加密https网页时,会弹出一个警告窗口,而且其选项的设置不符合常规习惯,很容易点错,下面是有关的分析和处理方法。

在用SSL加密后,用https访问原来的网页时老出现一个警告:
"This page contains both secure and non secure items.
Do you want to display non-secure items?"
中文版是:
"此网站包含的内容将不使用安全的https连接传送,可能危及到整个网页的安全"
在出现这样的提示,实在是太影响用户交互。

大多数网友给的解决方案是:
在ie的“Internet 选项”中修改ie的设定,如前文IE浏览SSL加密https网站的设置。但是如果是一个对外的网站,你也不可能要求每个用户都去改ie的设定,而且就算他们同意改,很多上网的用户根本不知道去哪里改。

所以通过修改ie设定的方式行不通,要找到问题的原因才能找到相应的解决办法。

原因分析:

可能引起这个warning的原因,简单归纳来说,不外乎是以下几点:
1) hard-code了http(或其它非https)的URL访问。
这是一个比较常见的问题,一般来说都不要在WEB页面中硬编码URL,可以采用相对URL。
2) WEB页面中含有没有设置SRC属性的iframe元素。
这个也比较常见,解决也很容易,可以给每个空的iframe设置SRC属性,这个src可以指向一个空的html页面,或是采用src="javascript:void()"这种方式。
3) 调用removeChild()方法去移除一个HTML元素,而这个元素包含一个backgroundImage背景图片的style引用。
这个严格来说,应该是IE的一个bug,可以在Microsoft官方网站上找到这个问题的描述和解决方案。不过即使是最新的IE8, 这个问题好像依然存在。
http://support.microsoft.com/kb/925014
4) 调用innerHTML()方法给一个HTML元素添加内容,之后再把这个元素添加到HTML DOM中。
这个问题可能在一些Ajax应用中会碰到,通过Ajax动态更新HTML内容,如果内容包含image图片等等内容,也会弹出这个warning。

测试情况是
1. https的网页中包含有非"https"的连接是不会出现警告,比如出现

a href="http://www.google.com">google/images/111.jpg
上面这两个img中,
第一个img会提示警告,而第二个img不会提示警告。

2.iframe标签中没有设定src属性,这样是会出现警告,所以加上
src ="javascript:void(0)"是可以 解决问题。
3.至于remoceChild()和innerHTML这两种情况没有测试过。
4.还有一种情况网页中有flash的
="http://---flash/swflash.cab

这样的代码也是会出现安全提示。
flash会提示错误,可能的原因,可能就是因为那两个显示的http的连接

解决办法:
如果要避免出现警告信息,而且要兼顾安全性和体验性。
建议:
1.需要用到内容加密的页面才用ssl加密,不需要用到https的页面不用https
2.把需要用到https的页面独立出来,比如登陆页面,重要的信息页面,在这个页面的功能尽量简单,减少出错的机会。
3.少用js去操作

本文链接:http://dafahao.com/remove-ie-ssl-https-warnning.html
本文标题:去除IE浏览器对SSL加密https网页的警告 - 真相网

本文TinyURL短网址: http://tinyurl.com/jqluty9 || 本文Google短网址: https://goo.gl/rGoCG

如喜欢本站请订阅: 或者 点此【RSS订阅真相网】
本文 发表于: 2010年2月13日, 更新于:2010年4月01日.

◇ 一键分享: . . .. . . . .. . . .. . . . . .. . . . . . . . . .
◇ 一键分享(中文): . . .. . . . . . . . .. . . . . .

这里是你留言评论的地方

8 + 9 =

【您可以使用 Ctrl+Enter 快速回复】

Copyright © 2008 - 2017 , Design by 真相网. 版权所有. 本站资料可以免费自由转载. 【回到顶部】