为了确保数据通信的安全,HTTPS已广泛应用于互联网,浏览器与服务器之间的HTTPS通信都是加密的。然而当浏览器需要通过代理服务器发起HTTPS请求时,由于请求的站点地址和端口号都是加密保存于HTTPS请求头中的,代理服务器是如何既确保通信是加密的(代理服务器自身也无法读取通信内容)又知道该往哪里发送请求呢?为了解决这个问题,浏览器需要先通过明文HTTP形式向代理服务器发送一个CONNECT请求告诉它目标站点地址及端口号。当代理服务器收到这个请求后,会在对应的端口上与目标站点建立一个TCP连接,连接建立成功后返回一个HTTP 200状态码告诉浏览器与该站点的加密通道已建成。接下来代理服务器仅仅是来回传输浏览器与该服务器之间的加密数据包,代理服务器并不需要解析这些内容以保证HTTPS的安全性。
升级至IE11后网页布局破坏最常见的原因是:IE11使用了较新的文档模式来渲染页面。但有时候会发现一个页面即使使用了相同的文档模式,IE11中显示的布局仍然被破坏了,这可能是由于IE11使用了一种全新的字体渲染模式:natural metrics
,在IE11之前IE都是使用传统的gdi metrics
。
在IE11中,仅仅使用兼容性视图可能无法解决所有兼容性问题。2014年4月的IE11累积更新首次引入了企业模式。起初企业模式旨在模拟IE7、IE8浏览器行为以兼容更多的老旧站点,之后的更新中企业模式允许针对某个站点指定使用特定的文档模式(5~11)。所以为了使用到功能最全面的企业模式,请先将IE11更新至最新版本:KB4018271。
兼容性视图是IE最常用的向下兼容方案,它可以通过兼容性视图设置、组策略、本地Intranet站点来实现。巧妙地利用这些配置可以控制不同的子域名有些在兼容性视图中显示,有些在默认模式中显示。
浏览器模式决定了 Internet Explorer 发出请求时自带的 User-Agent,也决定了在默认情况下 Internet Explorer 使用哪一种文档模式来渲染页面。这篇文章就来梳理一下它们的关系。
最近在IE11中遇到网页不工作并报错: “SEC7111: HTTPS 安全受到(null)的威胁” 的问题。调试后发现这是由于在HTTPS页面调用 document.write()
方法所导致。
最近我在往博客文章中添加评论功能后,发现使用IE访问某一篇文章的页面总是弹出警告:“Internet Explorer 已对此页面进行了修改,以帮助阻止跨站点脚本”。通过Fiddler不断调试和测试,发现是因为这篇文章的标题以 JavaScript:
开头,然后触发IE的XSS筛选器认为这是一个跨站点脚本攻击。其实文章标题中并不含有任何JavaScript脚本语句,只不过是以 JavaScript:
为开头,却最终导致XSS筛选器误判一个正常的页面。
自2016年1月12日起,Windows 7上的旧版本IE浏览器(8~10)将停止支持。越来越多的企业和个人用户选择升级至最新的Internet Explorer 11,对于个人用户,升级IE11只需点几下鼠标。然而对于企业IT管理员,升级成百上千台计算机的IE并且确保成功,那可能就没那么容易了。