分类: 嵌入式
2012-06-24 16:00:40
宏是通过一次单击就可以应用的命令集。它们几乎可以自动完成你在程序中执行的任何操作,甚至还可以执行你认为不可能的任务。
宏是编程,但即使你不是开发人员也可以使用它们,甚至不需要知道任何编程知识。在Office程序中可以创建的多数宏都是用Microsoft VBA (Visual Basic for Applications)语言编写的。
事实上,尽管多数宏是无害而且有益的,但宏是一个重要的安全问题。如果有人抱着恶意目的创建宏,这些宏可能包含损害你的文档或系统的破坏性代码。
对于Open XML支持的文档而言,凡是包含宏或代码的文档都会以特殊的名称保存,如Word文档的后缀名是docm,Excel工作簿的后缀名是xlsm,PPT演示文稿的后缀名是pptm,其中的字母“m”就代表了macro(宏),这样你可以很清楚地识别到当前的文档中是否有宏的存在。
另外,在默认情况下,新的Open XML文件格式不执行文档中的宏和嵌入代码,还可以快速识别和删除文档中带有的身份信息和敏感信息,如用户名、备注和文件路径等。因此,以Open XML格式保存的文档将更加安全,可以放心地与他人进行文档的共享。
以Word 2007为例,打开Word选项→信任中心→宏设置,可以看到关于宏设置的选项。如图14-22所示。
图14-22 宏安全设置
从图14-22中可以看到,默认情况下会禁用所有宏,可以更改这一设置根据实际情况。
宏在Open XML包中作为一个二进制的OLE2文件存在指定的目录中,一般情况下,遵守如下规则:
q Word: word/vbaProject.bin
q Excel: xl/vbaProject.bin
q PowerpPoint: ppt/vbaProject.bin
遗憾的是,宏并没有在Open XML的规范文档中被提及,并且OLE2文件的格式也不是公开的。下篇博客来了解什么是OLE,以及它和Office文档的关系。
----------------注:本文部分内容改编自《.NET 安全揭秘》