去除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去操作

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

这里是你留言评论的地方

9 + 10 =
Copyright © 2007 - 2018 , Design by 真相网. 本站资料可以免费自由转载. 若有版权问题请留言通知本站管理员. 【回到顶部】