日期:2014-05-16  浏览次数:20394 次

JS不能创建ADODB.Stream解决之道
ADO 流对象包含用于读写二进制文件和文本文件的方法。当 ADO 流对象与 Internet Explorer 中的已知安全漏洞组合后,Web 站点就可以从本机域执行脚本。为了帮助保护您的计算机免受此类攻击,可以手动修改您的注册表。



简介

ADO 流对象指内存中的一个文件。该流对象包含用于读写二进制文件和文本文件的几个方法。当此项特意设计的功能与 Microsoft Internet Explorer 中的已知安全漏洞组合后,Internet Web 站点就可以从本机域执行脚本。出现此问题的原因是,当 Internet Explorer 中存在 ADODB.Stream 对象时,ADODB.Stream 对象允许对硬盘进行访问。

更多信息


任何需要将文件加载或保存到硬盘上的业务流程 Web 应用程序可能会在 Internet Explorer 中使用ADODB.Stream 对象。例如,如果 Intranet 服务器上存有一个需要员工下载并填写的表,ADODB.Stream 对象则用来获取该文件并将其保存在本地。用户在本地编辑完该文件并将其提交回服务器后,ADODB.Stream 对象则用来从本地硬盘中读取该文件并将其发送回服务器。


强烈建议您使用其他方法提供此功能。例如,可以使用需要用户审慎访问硬盘的应用程序或控件。


软件更新信息

Microsoft 提供了三种方法用来禁用 Internet Explorer 中的 ADODB.Stream 对象。您可以使用 Microsoft Windows Update 更新您的计算机、可以从 Microsoft 下载中心下载更新文件,也可以手动禁用 ADODB.Stream 对象。

警告:“注册表编辑器”使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因“注册表编辑器”使用不当而导致的问题。使用“注册表编辑器”需要您自担风险。


这些方法将在创建以下注册表项后奏效:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet

Explorer\ActiveX Compatibility\{00000566-0000-0010-8000-00AA006D2EA4}


该注册表项具有 ADODB.Stream 对象的 GUID。当 Internet Explorer 识别此注册表项时,Internet Explorer 不允许在浏览器中启动此组件。



Windows 更新

要安装此更新,请访问下面的 Microsoft Web 站点:

http://v4.windowsupdate.microsoft.com/zhcn/default.asp


Microsoft 下载中心更新

要使用 Microsoft 下载中心提供的注册表项更新来禁用 ADODB.Stream 对象,请访问下列 Microsoft Web 站点之一,具体情况视您的操作系统而定:


32-bit

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=4D056748-C538-46F6-B7C8-2FBFD0D237E3


64-bit

http://www.microsoft.com/downloads/details.aspx?FamilyId=E7576B19-DE8B-41B0-BBD9-06C39591CECF&displaylang=en


Microsoft 下载中心 Web 站点上提供其他信息以及下载说明。


手动处理

要通过手动创建注册表项来禁用 ADODB.Stream 对象,请按照以下步骤操作:

单击“开始”,然后单击“运行”。

在“打开”框中,键入 Regedit,然后单击“确定”。

在注册表编辑器中,找到以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet

Explorer\ActiveX Compatibility



右键单击“ActiveX Compatibility”,指向“新建”,然后单击“项”。

为新项键入下面的名称:

{00000566-0000-0010-8000-00AA006D2EA4}



右键单击此新项,指向“新建”,然后单击“DWORD 值”。

将该值命名为 Compatibility Flags。

在右窗格中,右键单击“Compatibility Flags”,然后单击“修改”。

在“编辑 DWORD 值”对话框中,确保选中“十六进制”选项,在“数值数据”框中键入“400”,然后单击“确定”。

关闭注册表编辑器。

设定兼容性标记后,ADODB.Stream 对象即无法在 Internet Explorer 中访问您的计算机硬盘。但是,ADODB.Stream 对象仍可以在 Internet Explorer 以外访问您的硬盘。

重要说明

添加此注册表项后,只有 Internet Explorer 中的 ADODB.Stream 对象受影响。其他 ADO 对象不会受到此更改的影响。



应用此更新后,当您尝试从 Internet Explorer 的 HTML 页中使用 ADO 流对象时,将收到以下错误信息:



ActiveX component can’t create object:‘ADODB.Stream’

如果您在企业内部网环境中运行应用程序,而当前企业内部网环境在 Internet Explorer 中使用 ADODB.Stream 对象,应用此更新可能导致应用程序停止运行。要恢复应用程序功能,Microsoft 建议首先将您的 Internet Explorer 浏览器的安全级别设为“高”,然后必须清除 ADODB.Stream 对象的兼容性标记

要将您的 Internet Explorer 浏览器设置为高安全级别,请按照这些步骤操作:

在 Internet Explorer 中,单击“工具”菜单中的“Internet 选项”。

单击“安全”选项卡。在“请为不同区域的 Web 内容指定安全设置”下单击“Internet”。

单击“默认级别”,然后将滑动条移动到“高”。

单击“应用”,然后单击“确定”关闭“Internet 选项”对话框。

将值设定为零 (0x0) 即可清除 Internet Explorer ADODB.Stream 对象的兼容性标记。将值设定为零 (0x0) 可禁用该项并恢复功能。要手动将兼容性标记设置为零,请按照以下步骤操作:

单击“开始”,然后单击“运行”。

在“打开”框中,键入 Regedit,然后单击“确定”。

在注册表编辑器中,找到以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet

Explorer\ActiveX Compatibility\{00000566-0000-0010-8000-00AA006D2EA4}



在右窗格中,双击“Compatibility Flags”。

在“编辑 DWORD 值”对话框中,确保选中“十六进制”选项,在“数值数据”框中键入“0”,然后单击“确定”。

关闭注册表编辑器。





参考



有关 Internet 安全的更多信息,请访问下面的 Microsoft Web 站点:

http://www.microsoft