我管理在SSL下运行的电子商务网站。
问题发生在我的网站购物车的最终页面上,该页面在SSL下加载。问题是Internet Explorer 8.0(包括版本8.0.6001.18702和其他版本的IE8,但据报道并非IE8的所有版本)抱怨至少有一个非安全元素加载,这吓跑了一些我的潜在客户在页面显然已满载(看似没有丢失图像)后,IE8显示一个对话框,其中显示:
“安全警告:您是否只想查看该网页内容 安全送达?此网页包含无法投放的内容 使用安全的HTTPS连接,这可能会危及安全性 整个网页。 (是/否)“
我试图追踪可能通过HTTP加载的所有无效图像和链接,但没有用。 Firebug Lite没有显示任何不安全的信息。我开始认为这可能是IE8中的一个错误,在IE9中已得到纠正,并没有抱怨。
重现此错误: Click here using IE8 (or Chrome) 将商品添加到购物车。在结果页面上,单击右侧的“绿色”按钮,显示“继续进行安全结账”。您会注意到您从IE8中看到上述“安全警告”。
问题:如何确定浏览器尝试非安全加载的内容,或者如何取消“警告”消息?
更新:似乎“安全警告”是由于此页面上暂停的JavaScript执行造成的。但同样的问题仍然存在。如何抑制或“调试”“安全警告”消息?
答案 0 :(得分:2)
它还能够模拟“中间人”测试环境,有效地允许它解密SSL流量。当然,生成的“动态”证书在所有浏览器中都被明确标记为不可信,以防止滥用它。
编辑:我按照给定的说明引发了问题,但IE8中的任何安全警告都没有问题。 Fiddler也表明所有资源都是通过SSL加载的。
答案 1 :(得分:2)
我知道这是一篇很老的帖子,但由于没有发布修复我的类似情况的答案,我以为我会分享我发现的,以防其他人偶然发现这个页面。如果使用removeChild()
删除包含内联样式设置背景图像的HTML元素,则会在旧版IE8中发出警告。您可以通过将背景图样设置为HTML头或外部样式表中设置的样式类来移除警告。
请参阅this Microsoft KB Page,其中说毛刺只发生在IE6和IE7中,但它也发生在我在XP上的IE8上,同样的修复也有效。
答案 2 :(得分:1)
我在过去遇到过与IE8类似的问题,而它似乎是缓存项目的问题。我无法完全确定它,因为像我一样,我检查了所有资产,发现没有通过SSL加载的任何内容。但是,我注意到如果我阻止所有缓存并强制IE从服务器加载所有资产,警告就会消失。
我不知道是否存在从缓存中提取的某些项目未被识别为安全的错误,但它似乎与它有关。
禁用缓存显然是解决仅影响浏览器子集的问题的一种不好的方法,但它可能是一个可以引导您朝着正确方向发展的提示。
答案 3 :(得分:0)
点击页面顶部的结帐处理?
不再是https了吗?
答案 4 :(得分:0)
如果您有支持SSL的页面,那么每个资产(js,css,images)也应该由HTTPS协议提供服务。对于90%的浏览器来说,这是相同的行为
答案 5 :(得分:0)
Jon说:
如果使用
removeChild()
删除包含内嵌样式设置背景图像的HTML元素,则会在旧版IE8中发出警告。您可以通过将背景图样设置为HTML头或外部样式表中设置的样式类来移除警告。
虽然Microsoft KB Page确实提供了修复,但最佳解决方案是按如下方式实现它(放在页面底部的脚本中):
Ext.removeNode = Ext.isIE ? function(){
return function(n){
if(n && n.tagName != 'BODY'){
n.outerHTML = "";
}
}
}() : function(n){
if(n && n.parentNode && n.tagName != 'BODY'){
n.parentNode.removeChild(n);
}
}