面向 Office 解决方案开发者的安全说明

在测试环境中设置 Office 安全性

注意

可以包含Visual Basic for Applications (VBA) 代码,或仅在启用了宏的文档、工作表或演示文稿中运行 COM 加载项。 可以通过在 Word 中保存扩展名为 .docm 或 .dotm 的文档来创建启用了宏的文件;Excel 中的 .xlsm、.xltm 或 .xlam 扩展;或 PowerPoint 中的 .pptm、.potm、.ppam 或 .ppsm 扩展。

若要安装和运行未签名的 COM 加载项,必须在信任中心的“加载项”选项卡上清除“要求应用程序加载项由受信任的发布者签名”和“禁用所有应用程序加载项”选项。 若要打开“加载项”选项卡,请选择“文件”选项卡,然后选择“选项>信任中心信任中心>设置>加载项”。

若要运行所有 VBA 宏,包括未经数字签署的宏,必须在信任中心中选择“启用所有宏”选项。 若要查看“宏设置”选项,请选择“文件”选项卡,然后选择“选项>信任中心信任中心>设置”“>宏设置”。 出于安全原因,强烈建议您只在测试环境中执行此操作。 在完成测试后,再将这些选项重新设置为原始状态。

在信任中心的“ 宏设置” 选项卡上,将选项设置为 “禁用所有宏而不通知”、“ 使用通知禁用所有宏”“禁用除数字签名宏以外的所有宏”。 通过将 Word 文档、Excel 工作表或 PowerPoint 演示文稿分别保存为) (.docm、.xlsm 或 .pptm 的宏禁用文件来禁用宏。 通过选择或清除“信任对 VBA 项目对象模型的访问权限”选项,从 “宏设置” 选项卡设置或禁用 对 VBA 项目对象模型的访问权限

注意

在 Office Fluent 用户界面功能区中,当启用或加载 COM 和应用程序特定的加载项时,“加载项”选项卡中会显示其控件。

在信任中心的“ 加载项 ”选项卡上查看可用加载项列表。 在同一选项卡上,通过在 “管理 标签”旁边的下拉框中选择加载项类型来启用、禁用、添加或删除 COM 或 Word 加载项,然后选择“ 转到 ”按钮。

修改 Windows 注册表

以任何方式修改 Windows 注册表(无论是在注册表编辑器中还是在以编程方式)始终都会带来一定程度的风险。 不正确的修改会导致严重的问题,可能需要重新安装操作系统。 在修改计算机注册表之前,最好先备份计算机注册表。 如果运行的是 Microsoft Windows NT、Windows 2000、Windows XP 或 Windows Server 2003,则还应更新紧急修复磁盘 (ERD) 。

有关如何编辑注册表的信息,请参阅 注册表编辑器 (Regedit.exe) 中的更改键和值“帮助主题 注册表编辑器中的添加或删除信息 以及注册表编辑器 (Regedt32.exe) 中的 编辑注册表信息 主题。

进行 Windows API 函数调用

在调用 Windows 应用程序编程接口 (API) 函数之前,应了解 Windows API DLL 如何处理参数和数据类型。 不正确地调用 Windows 函数可能导致无效的页面错误或其他意外行为。 有关如何调用 Windows 函数的详细信息,请参阅 Office 2000 Developer Online 文档中的主题“Windows API 和其他Dynamic-Link库”。

对代码进行数字签名

数字签署文档是给文档“加戳记”的过程,该过程使文档收件人可以断定文档来自特定源,并可检测文档的内容自签署文档以来是否发生过更改。 此外,数字签名还可用于将文档标记为只读,以保护其真实性和完整性。

除了数字签名外,文档还可以包含在文档内容中可见的文档内签名。 文档的发起方可以创建包含签名行的未签署文档,并将其传输给收件人进行签署。 收件人打开文档,找到签名行,签署文档,然后将其返回给发件人。

基本上,数字签署文档的步骤包括:

  1. 文档的发起方使用称为“哈希”的过程将文档的内容压缩为几行。压缩的内容称为消息摘要。 哈希由为该用途创建的软件执行。
  2. 然后,文档的发起方通过使用从签署颁发机构获取的私钥对消息摘要进行加密。 结果就产生了数字签名。
  3. 发起方将该数字签名附加到文档中。 现在,经过哈希处理的所有数据均已得到签署,并且签名已加密并附加到文档。
  4. 然后,发起方将文档发送给收件人。
  5. 收件人首先使用从发起方那里收到的公钥对文档解密。 此操作会将签名重新更改为消息摘要。 如果起作用,则证明文档由发起方签署。
  6. 收件人使用数字签署软件将文档哈希处理为消息摘要,并将此哈希与来自发件人的哈希进行比较。 如果它们匹配,则证明自发起方发送文档以来,文档的内容并未更改。

自 Office XP 以来,用户便可使用数字签名。 但是,Office 2007 添加的功能更便于用户数字签署文档、签署文档以使其成为只读文档以及向文档中添加内嵌文档签名行。 Office 用户可以从“ 文件 ”选项卡上提供的 Office 用户界面执行这些任务。

Office 2007 还引入了其他功能,使其更易于以编程方式使用内嵌签名和数字签名。

在 Office 中安全地部署托管 COM 加载项

为了符合 Office 安全性,必须对面向公共语言运行时) 的托管 COM 加载项 (COM 加载项进行数字签名,并且应在 Office 信任中心设置用户的安全设置,以允许 Office 应用程序中的加载项。 此外,还必须在托管 COM 加载项项目中包含一个称为填充码 的小型非托管代理,以避免意外的安全警告。

自动执行 Visual Basic 编辑器

在 Office 中,调用 Visual Basic for Applications Extensibility 对象模型的功能时,可能会收到一条错误消息,指出对 Visual Basic 项目的编程访问不受信任。 若要防止出现此消息,请选择“ 文件 ”选项卡“ >选项>”“信任中心 ”选项卡,然后选择“ 信任中心设置”。 接下来,在“ 宏设置” 选项卡上,选择“ 信任对 VBA 项目对象模型的访问权限 ”框。 通过选中此框,可以打开任何启用宏的文档中的宏来访问核心 Visual Basic 对象、方法和属性。

设置该选项可能会带来安全风险。 建议做法是仅在访问 Visual Basic 对象模型的宏的持续时间内选中“信任对 VBA 工程对象模型的访问”框。 确保在宏运行完毕后清除“信任对 VBA 工程对象模型的访问”框。

使用密码

尽量避免在应用程序中使用硬编码的密码。 如果过程中需要使用密码,请向用户请求密码并将其存储在一个变量中,然后在代码中使用该变量。

始终应使用强密码。 强密码应包含:

  • 小写和大写字符
  • 数字
  • 符号 (,如 #、$、% 和 ^)
  • 至少 8 个字符

强密码不应包含模式、主题或字典中的字词。

强密码的示例包括:

  • $tR0n9p@$s
  • G80dn[s$M4!

注意

应定期更改密码;例如,每一到三个月更改一次。

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。