1.6 联网和区域
IE使用大量的库和Windows API来处理联网、对象下载和安全性基础结构。Windows本身提供了大量界面和服务,IE不需要再重复这些界面和服务;例如,Windows向很多不同应用程序提供了缓存和cookie服务,诸如凭据用户界面之类的API和提升清单提供了与系统安全性基础结构进行交互的机制。
1.6.1 URLMon
URLMon(URL Moniker的缩写)是一个COM库,它采用一种方式包装WinINET库,与IE的操作紧密结合在一起作为一个Web浏览器。URLMon还为可插入协议提供了扩展层,使IE能够使用由WinINET提供支持的协议来请求内容,这些协议不限于HTTP,HTTPS和FTP协议。URLMon还控制“区域”和一般性内容安全性、代码下载和下载管理。
1. 区域与安全性管理器
IE使用安全区域对数据源进行分组,并对这些群组应用不同限制。默认情况下,IE包括5个不同区域:
● 本地计算机:源于本地计算机的页面
● Intranet:源于本地网络服务器的页面
● 可信站点:明确列为可信的域
● Internet:源于远程服务器的页面
● 受限:特别列为受限的域
对从每种区域上下文中加载的对象,都赋予针对IE功能的不同权限;例如,在Internet区域可以运行脚本,但在“受限区域”中会阻止其运行。微软已经定义了一些由低至高、代表默认设置的模板。
URLMon通过IInternetSecurityManager公开了精细的安全性管理函数。这个界面允许IE和其他已安装应用程序参与浏览器中所加载内容的信任决定链。如果应用程序注册为安全管理器,则允许这些应用程序查看和修改对一个页面应用的默认URL操作,这些操作来自该页面的适当区域。
2. 可插入协议处理程序
URLMon为应用程序提供了大量方法,可通过注册协议处理程序来处理协议请求。在请求一个URL时,IE检查是否为该URL的协议注册了任何关联;这种关联的形式可能是应用程序,也可能是实现异步可插入协议(APP) API的库。
1.6.2 WinINET
WinINET是用于联网和处理常见Web协议的Windows API。它被广泛应用于HTTP(S)和FTP下载、缓存界面和cookie管理。WinINET还控制了(声名不佳的)index.dat文件——这些文件是存储容器,用于保存缓存的内容、cookie、链接等。
1.7 安全性、信任和隐私体系结构
IE在很多方面都成为针对其平台的攻击目标,而其中的原因则各有不同,争论也很多。从IE退一步来说,终端用户不仅会被那些针对网站发起的更广泛攻击所波及,甚至还会面临通过社会工程和隐藏窥探对其本身发起的攻击。无论是哪一种方式,现代浏览器通常都包含了大量预防此类攻击的安全功能。IE也不例外,提供了内置的安全性体系结构以减少潜在的安全漏洞。
1.7.1 安全性用户界面和反馈机制
安全功能是非常重要的:它们帮助保护用户、数据和系统。在加载潜在的危险内容或者来自可疑来源的内容时,这一点显得尤为重要。而与此同时,这些浏览器的确存在,所以用户可能打开潜在的危险内容和来自可疑来源的内容。非常让人惊讶的是,用户希望能够浏览这些网页!
考虑到这两个相互冲突又非常必要的目标,就出现了安全性用户界面和反馈机制,用于向用户传达浏览过程中的安全隐患信息。这些方法和媒体是不同的,但它们的目标都是描述一个网页、一次下载和一个通信信道的当前状态,使用户知道为什么这些内容可能是危险的,为什么它受到了限制,或者为什么受到了阻止。
1. 信息栏
信息栏(IE团队称之为GoldBar)是在一个存在于IDocHostUIHandler中的用户界面元素,它尝试向用户通告重大的浏览器事件,在某些情况下,要求用户做出信任决定(见图1-21)。
图1-21 ActiveX安装信息栏
信息栏中的文本向用户通知有关该事件的任意必要操作,如果需要执行操作,会提供一个带有决定流的快捷菜单。很多IE功能都使用了信息栏,包括“弹出窗口阻止程序”、XSS筛选器和ActiveX安装程序。