为 Office 2010 规划 ActiveX 控件的安全设置

 

适用于: Office 2010

上一次修改主题: 2016-11-29

可以通过修改 ActiveX 控件设置来更改 Microsoft ActiveX 控件在 Microsoft Office 2010 中的行为方式。

本文内容:

  • 关于规划 ActiveX 控件的设置

  • 禁用 ActiveX 控件

  • 更改 ActiveX 控件的初始化方式

  • 相关的 ActiveX 控件设置

关于规划 ActiveX 控件的设置

Office 2010 提供了多种安全设置,使您可以控制 ActiveX 控件的行为方式以及告知用户潜在的不安全 ActiveX 控件的方式。通过配置这些设置,可以执行下列操作:

  • 禁用 ActiveX 控件。

  • 修改基于安全模式参数以及初始化安全 (SFI) 和初始化不安全 (UFI) 参数初始化 ActiveX 控件的方式。

有关如何在 Office 自定义工具 (OCT) 和 Office 2010 管理模板中配置安全设置的信息,请参阅为 Office 2010 配置安全性

默认情况下,使用永久值在安全模式下加载受信任的 ActiveX 控件,并且不会通知用户已经加载了 ActiveX 控件。受信任的 ActiveX 控件是由受信任的发布者签署或从受信任位置打开或被认为是受信任文档的文档中包含的任何 ActiveX 控件。不受信任的 ActiveX 控件的加载方式不同,具体取决于 ActiveX 控件的标记方式以及 VBA 项目是否与 ActiveX 控件共同存在于文件中。不受信任的 ActiveX 控件的默认行为如下:

  • 如果 ActiveX 控件被标记为“初始化安全 (SFI)”,并且包含在不包含 VBA 项目的文档中,将使用永久值在安全模式下加载 ActiveX 控件。不会出现消息栏,并且不会通知用户存在 ActiveX 控件。必须将文档中的所有 ActiveX 控件都标记为 SFI,才会发生此行为。

  • 如果 ActiveX 控件被标记为“初始化不安全 (UFI)”,并且包含在不包含 VBA 项目的文档中,则会在消息栏中通知用户 ActiveX 控件被禁用。但是用户可以单击消息栏来启用 ActiveX 控件。如果用户启用 ActiveX 控件,将使用永久值在安全模式下加载所有 ActiveX 控件(标记为 UFI 和 SFI 的控件)。

  • 如果标记为 UFI 或 SFI 的 ActiveX 控件所在的文档还包含 VBA 项目,则会在消息栏中通知用户 ActiveX 控件被禁用。但是用户可以单击消息栏来启用 ActiveX 控件。如果用户启用 ActiveX 控件,将使用永久值在安全模式下加载所有 ActiveX 控件(标记为 UFI 和 SFI 的控件)。

重要

如果在注册表中为 ActiveX 控件设置了消除位,则不会加载该控件,并且在任何情形下都无法加载该控件。此外,也不会出现消息栏,并且不会通知用户存在 ActiveX 控件。

禁用 ActiveX 控件

Office 2010 提供使您能够禁用 ActiveX 控件的设置。通过禁用 ActiveX 控件,可以阻止文件中的所有 ActiveX 控件在文件打开时进行初始化(即进行加载)。它还可以禁止用户向文档中添加 ActiveX 控件。在某些情况下,虽然已禁用的 ActiveX 控件在文件中可能以红色 x 或其他一些符号的形式出现,但由于该控件已被禁用,因此在用户单击该符号时将不会发生任何操作。此外,禁用 ActiveX 控件时,用户不会收到禁用 ActiveX 控件的通知。

使用以下准则可确定是否禁用 ActiveX 控件。

**设置名称:**禁用所有 ActiveX


  • **描述:**此设置控制是否在 Office 2010 中禁用 ActiveX 控件。这是全局设置,不能针对每个应用程序进行配置。


  • **影响:**如果启用此设置,将不会初始化 ActiveX 控件,用户也不会收到有关禁用 ActiveX 控件的通知。此外,用户也不能向文档中插入 ActiveX 控件。ActiveX 控件可在文档中提供附加功能。因此,禁用它们会减少用户可用的功能。您应该确保用户知道该设置已启用,因为应用程序不向用户通知 ActiveX 控件已被禁用这一情况。在启用此设置之前,应确定是否要将 ActiveX 控件用于提供关键业务功能,这一点也很重要。


  • **准则:**安全环境限制性较强的组织通常会启用此设置。

备注

如果启用此设置,在受信任位置保存的文件中将禁用 ActiveX 控件。

您还可以使用 Office 2010 中引入的 Office COM 消除位禁止包括 ActiveX 控件在内的特定 COM 对象在 Office 2010 应用程序内运行。2007 Office system 中提供了此功能。但是,它依赖于 Internet 浏览器 ActiveX 消除位设置。现在借助 Office 2010,您可以通过注册表来单独控制使用 Office 2010 无法运行哪些 COM 对象。例如,如果对于 Office 和 Internet Explorer 这两个位置中的同一 ActiveX 控件都设置了消除位,并且这两个设置之间存在冲突,则 Office COM 消除位将优先。在应用 Microsoft 安全公告中包含的更新来解决特定 Office 2010 安全问题时,通常会看到设置 Office COM 消除位这一情况。

警告

建议您不要对 COM 对象取消消除操作(撤消消除操作)。如果执行此操作,可能会形成安全漏洞。设置消除位通常是基于很关键的原因,因此在对 ActiveX 控件取消消除操作时,必须格外谨慎。

在需要将新 ActiveX 控件(经过修改以减小安全威胁)的 CLSID 与应用了 Office COM 消除位的 ActiveX 控件的 CLSID 关联时,可能要添加 AlternateCLSID(也称为菲尼克斯位)。Office 2010 仅支持将 AlternateCLSID 用于 ActiveX 控件 COM 对象。有关包括 AlternateCLSID 在内的消除位行为的详细信息,请参阅如何禁止 ActiveX 控件在 Internet Explorer 中运行 (https://go.microsoft.com/fwlink/?linkid=183124\&clcid=0x804)。

以下过程对技术要求很高,除非您非常熟悉该过程,否则请不要继续。

重要

此部分、方法或任务包含的步骤讲述如何修改注册表。但是,如果注册表修改不当,可能会出现严重问题。因此,请务必要认真执行这些步骤。为了提供附加保护,请在修改注册表之前先对其进行备份。然后,您可以在出现问题时还原注册表。

注册表中用于设置 Office COM 消除位的位置是 HKLM/Software/Microsoft/Office/Common/COM Compatibility/{CLSID},其中 CLSID 是 COM 对象的类标识符。若要启用 Office COM 消除位,您需要添加包括 ActiveX 控件的 CLSID 的注册表项,并将 0x00000400 的值添加为兼容性标志 REG_DWORD。

备注

通过在 Office 2010 中启用 COM 类别可以影响消除位(包括 Internet Explorer 和 Office COM)的行为。有关详细的信息,请参阅规划 Office 2010 的 COM 对象分类

可能要考虑放到 Office 拒绝列表中的控件:


  • Microsoft HTA Document 6.0 - 3050F5C8-98B5-11CF-BB82-00AA00BDCE0B


  • htmlfile - 25336920-03F9-11CF-8FD0-00AA00686F13


  • htmlfile_FullWindowEmbed - 25336921-03F9-11CF-8FD0-00AA00686F13


  • mhtmlfile - 3050F3D9-98B5-11CF-BB82-00AA00BDCE0B


  • Web 浏览器控件 - 8856F961-340A-11D0-A96B-00C04FD705A2


  • DHTMLEdit - 2D360200-FFF5-11d1-8d03-00a0c959bc0a

更改 ActiveX 控件的初始化方式

Office 2010 提供了一种设置,使您可以控制基于 SFI、UFI 和安全模式参数初始化 ActiveX 控件的方式。SFI、UFI 和安全模式是开发人员在创建 ActiveX 控件时可以配置的参数。标记为 SFI 的 ActiveX 控件使用安全的数据源进行初始化。安全的数据源是一个受信任的、已知的且不会导致出现安全漏洞的数据源。未标记为 SFI 的控件将被视为 UFI。

安全模式是开发人员可以用来帮助确保 ActiveX 控件安全的另一种安全机制。当开发人员创建实现安全模式的 ActiveX 控件时,可以通过两种方式初始化这类控件:在安全模式下和在不安全模式下。在安全模式下初始化 ActiveX 控件时,将会对控件施加一些对功能的限制。相反,在不安全模式下初始化 ActiveX 控件时,对其功能没有任何限制。例如,如果读写文件的 ActiveX 控件是在安全模式下初始化的,则可能仅允许该控件读取文件,而在不安全模式下初始化控件时,该控件则可能能够读写文件。只有属于 SFI 的 ActiveX 控件才能在安全模式下初始化。属于 UFI 的 ActiveX 控件始终在不安全模式下进行初始化。

如果 ActiveX 控件的默认初始化对您的组织而言不够充分,但您不想禁用 ActiveX 控件,请使用以下准则确定如何更改 ActiveX 控件的初始化方式。

**设置名称:**ActiveX 控件初始化


  • **描述:**此设置可为所有 Office 2010 应用程序指定 ActiveX 控件的初始化方式。这是全局设置,不能针对每个应用程序进行配置。您可以为此设置选择六个可能的初始化安全级别之一:

    • **安全级别 1:**无论如何标记该控件,都加载该控件并使用永久值(如果有)。此设置可禁止用户接收提示。

    • **安全级别 2:**如果控件被标记为 SFI,则在安全模式下加载控件并使用永久值(如果有)。如果控件未标记为 SFI,则在不安全模式下使用永久值(如果有)加载,或使用默认(第一次初始化)设置。此级别类似于默认配置,但与默认配置不同,此设置可禁止用户获得通知。

    • **安全级别 3:**如果控件被标记为 SFI,则在不安全模式下加载控件并使用永久值(如果有)。如果控件未标记为 SFI,则提示用户并建议他们将控件标记为不安全。如果用户在提示时做出的决定是“否”,则不加载该控件。否则,将使用默认(第一次初始化)设置加载控件。

    • **安全级别 4:**如果控件被标记为 SFI,则在安全模式下加载控件并使用永久值(如果有)。如果控件未标记为 SFI,则提示用户并建议他们将控件标记为不安全。如果用户在提示时做出的决定是“否”,则不加载该控件。否则,将使用默认(第一次初始化)设置加载控件。

    • **安全级别 5:**如果控件被标记为 SFI,则在不安全模式下加载控件并使用永久值(如果有)。如果控件未标记为 SFI,则提示用户并建议他们将控件标记为不安全。如果用户在提示时做出的决定是“否”,则不加载该控件。否则,将使用永久值加载控件。

    • **安全级别 6:**如果控件被标记为 SFI,则在安全模式下加载控件并使用永久值(如果有)。如果控件未标记为 SFI,则提示用户并建议他们将控件标记为不安全。如果用户在提示时做出的决定是“否”,则不加载该控件。否则,将使用永久值加载控件。


  • **影响:**如果控件未标记为 SFI,该控件可能对计算机产生负面影响 - 或者可能意味着开发人员在任何情况下均不测试该控件并且不确定该控件将来是否会受到威胁。此外,有些 ActiveX 控件不遵守安全模式注册表设置,因此即使您配置此设置也可能加载永久性数据,以便 ActiveX 控件在安全模式下进行初始化。启用此设置并选择安全级别 2、4 或 6 只会增加准确地标记为 SFI 的 ActiveX 控件的安全性。在涉及恶意代码或设计不合理代码的情况下,可能会将 ActiveX 控件不准确地标记为 SFI。


  • **准则:**大多数组织都启用此设置并选择安全级别 2,这样会与默认配置使用相同的初始化条件,但不在消息栏中通知用户。对安全环境的限制非常严格的组织通常会禁用此设置,这是默认配置。

相关的 ActiveX 控件设置

有些其他设置会影响 ActiveX 控件在 Office 2010 应用程序中的行为方式。如果因具有特殊安全环境而需要修改 ActiveX 控件设置,可能要评估以下设置:


  • **在 Forms3 中加载控件:**此设置确定 ActiveX 控件在 UserForm 中的初始化方法。


  • **禁用所有关于安全问题的信任栏通知:**此设置可禁止用户看到消息栏警告,包括有关不安全 ActiveX 控件的警告。

备注

有关策略设置的最新信息,请参考 Microsoft Excel 2010 工作簿 Office2010GroupPolicyAndOCTSettings_Reference.xls,可从 Office 2010 管理模板文件(ADM、ADMX、ADML)和 Office 自定义工具(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=189316&clcid=0x804)(该链接可能指向英文页面) 下载页上的“此下载中的文件”部分获得该工作簿。