本文共 1019 字,大约阅读时间需要 3 分钟。
本系列将介绍Internet Explorer(以下简称IE)的安全问题。由于篇幅和个人认知的限制,内容可能存在不足之处,欢迎读者提出宝贵意见。
本系列文章将分为三个部分:第一部分是背景介绍,第二部分是总结性描述,第三部分是详细介绍或实践内容。
IE自1999年随Windows 95推出IE 4.0以来,微软已推出多个版本。从IE1到IE12,IE经历了怎样的变迁?
IE1(1995年)是最早的“浏览器”,功能简单,但为后续版本奠定了基础。
IE3(1996年)引入了ActiveX控件、JavaScript和VBScript,开启了浏览器可重用性的时代。
IE4(1997年)新增了DHTML功能和BHO,支持了数据绑定。
IE5(1999年)带来了XMLHttpRequest的雏形,促进了AJAX技术的发展。
IE6(2001年)是IE家族市场份额最高的版本,但也因安全问题臭名昭著。
IE7(2006年)、IE8(2009年)主要进行性能优化和渲染修正。
IE9(2011年)支持多进程,网页假死不影响其他页面。
IE10(2011年)、IE11(2013年)性能提升,支持DNT。
IE12(代号Spartan,2015年)整合了语音助手,采用全新的DLL库。
IE的结构经历了多次演变。早期版本采用单进程模式,随着安全需求增加,逐步采用多进程模式。
IE7引入多进程模式,但新窗口仍在当前进程中创建。IE8进一步优化了进程模式,支持保护模式下的低完整性级别运行。
IE11的64位版本支持增强保护模式,网页进程在不同完整性级别下独立运行。
IE的结构演变不仅提升了安全性,也优化了性能。
Markup Service是IE的核心功能之一。它处理网页内容的解析与操作。
Markup Service通过将HTML转换为树状结构或基于流的模型,实现内容操作。树模型适用于简单结构,而基于流的模型则处理复杂范围问题。
IE11的文档标准化功能为开发者提供了强大的DOM操作能力。开发者可以通过Markup Pointer进行操作,如插入、删除、移动元素等。
需要注意Markup Service可能带来的安全风险,如空指针引用和指针移动失控等。
(1) 《IE安全系列》原文资料 (2) 微软官方文档 (3) 开源项目文档 (4) 相关技术博客
转载地址:http://uyhfk.baihongyu.com/