【发布时间】:2015-12-14 20:34:02
【问题描述】:
我正在考虑我正在开发的服务的一项功能,但我担心恶意代码注入。该服务是数据集和 docx 文件的简单合并。
我需要聚合合并代码,我想到的唯一解决方案是使用 ooxml。这很好用,但我担心如果攻击者发现了这一点,他们可以插入脚本来作恶。
有没有办法强化我的系统以防止这种注入,或者甚至有人可能以这种方式利用系统?
我不知道这里需要代码,但如果需要,我可以提供。本质上,我有一个函数可以确定字符串是否为 XML,尝试对其进行解析,如果它很好,则使用 openxml 框架 openxmlreader 类将其转换为 openxmlelement。然后将其插入到替换合并字段占位符的文档中。
【问题讨论】:
-
这可能会在security.stackexchange.com得到更好的答案
-
@cFrozenDeath 我考虑过,但这与具体的代码有关,并且该站点通常更多地是关于配置。
-
Word 和 OpenXML 是我更擅长的领域,所以我并没有完全了解您认为在哪些流程中可能存在安全风险?您是否认为“某人”可以在 Word 文档中插入可能是恶意的内容?
-
无法将可执行脚本插入 Word 文档本身。可执行脚本是 VBA - 二进制格式,必须作为 PART 插入到 Zip 包中,具有对应关系,并且需要更改文档类型和文件扩展名。除此之外,还有一些域代码有可能访问外部文件,但 Word 不会在未经用户批准的情况下在打开文档时更新(执行)它们。我认为您的代码可以检查文档中是否存在不良内容,或者您的代码没有插入的内容,如果这是一个真正的问题的话。
-
@Cindy Meister 感谢您证实了我的怀疑。我想用 word 保护脚本的方式(我的意思是 vba)我会很安全,但我对此没有超级经验。我担心在 cdata 中包含脚本的合并数据会被插入到我的结果文档中。如果确实它必须是包装的“一部分”,那么我应该没问题。再次感谢。