ooxml word文档中脚本的安全风险

security risk of scripts in ooxml word document

我正在考虑我正在开发的服务的一项功能,但担心恶意代码注入。该服务是数据集和 docx 文件的简单合并。

我需要聚合合并代码,我想到的唯一解决方案是使用 ooxml。这很好用,但我担心如果攻击者发现了这一点,他们可以插入脚本来作恶。

有没有办法加强我的系统以防止这种注入,或者是否有人可以通过这种方式利用系统?

我不知道此处是否需要代码,但如果需要,我可以提供。本质上,我有一个函数可以确定字符串是否为 XML,并尝试对其进行解析,如果它很好,则使用 openxml 框架 openxmlreader class 将其转换为 openxmlelement。然后将其插入到文档中以替换合并字段占位符。

我了解到您担心的是在编辑文件的 Open XML.[=10= 期间将可执行文件 "script" (VBA) 插入到 docx 文件中的危险]

VBA(宏)包含在文档 ZIP 包的单独 "Parts" 中。它们必须是专有的二进制格式,必须作为一个或多个PART文件插入到Zip包中,并具有对应关系。此外,需要更改文档类型和文件扩展名。

因此,不存在恶意代码能够将可执行脚本插入正在写入文档包的任何 XML 部分的 XML 字符串中的危险。

除此之外,还有一些域代码可能会访问外部文件,但 Word 不会在未经用户批准的情况下打开文档时更新(执行)它们。我认为您的代码可以检查文档中是否有不需要的内容,或者您​​的代码没有插入的内容,如果这是一个真正的问题。