我正在考虑我正在开发的服务的功能,但我担心恶意代码注入。该服务是数据集和docx文件的简单合并。
我需要聚合合并代码,我唯一能解决的问题是使用ooxml。这很好但我担心如果攻击者发现这个,他们可以插入脚本来做恶。
有没有办法强化我的系统以防止这种注入,或者甚至可能有人以这种方式利用系统?
我不知道这里的代码是必要的,但如果是这样,我可以提供它。本质上我有一个函数,可以确定字符串是否为XML,尝试解析它,如果它好,那么使用openxml框架openxmlreader类将其转换为openxmlelement。然后将其插入到替换合并字段占位符的文档中。
答案 0 :(得分:1)
我理解您关注的是在编辑文件的Open XML期间将可执行“脚本”(VBA)插入docx文件的危险。
VBA(宏)包含在文档ZIP包中的单独“部件”中。它们必须是专有的二进制格式,必须作为一个或多个PART文件插入Zip包中,并具有相应的关系。此外,还需要更改文档TYPE和文件扩展名。
因此,恶意代码无法将可执行脚本插入到写入文档包的任何XML部分的XML字符串中。
除此之外,还有一些域代码可以访问外部文件,但Word在未经用户批准的情况下打开文档时不会更新(执行)它们。我认为您的代码可以检查文档中是否存在不良内容,或者代码未插入的内容,如果这是一个真正的问题。