3

XPS 文档的安全性如何?从XPS文档内部查看后,找到了 Unicode-string 属性。有人可以将脚本注入 Unicode 字符串属性吗?

XPS 查看器如何处理 Unicode 字符串属性?作为字形的集合还是什么?

更新:我将以下字符串添加为 UnicodeText

!@#$%^&*()_+ 

XPS 查看器拒绝打开文件。这就是我想到这个问题的方式

4

2 回答 2

16

XPS 文档,而不是(咳嗽) 某些其他格式不能包含脚本或活动内容。它们仅用作高保真预印格式。话虽如此,XPS 解析器包含安全漏洞并非完全不可能。他们可以被利用。不过,到目前为止,我还没有听说过任何这样的漏洞。

但回到你的观点。如果有人想将脚本放入 XPS 文档中的字符串中,他当然可以这样做。他只是不应该期望它会被执行。如果某些软件确实这样做,那么它可能是软件的安全问题,而不是文件格式。

仅仅因为您可以将恶意软件放入文本文件(还记得 iloveyou.vbs 吗?),这并不意味着文本文件本身就有安全漏洞 :-)

ETA:有问题的 UnicodeString 属性有助于在 XPS 文件中进行搜索:

UnicodeString 属性保存由当前元素表示的 Unicode 标量值数组。建议指定 Unicode 字符串,因为它支持搜索、选择和可访问性。

虽然字符串本身应该采用某种格式(在第 115 页的标准中也有详细说明),但查看器不想接受您的输入的原因是它甚至不是格式良好的 XML,因为与符号 ( &) 未转义。我认为如果您按照&XML 的要求对 & 符号进行编码,它将起作用。该规范还指出

标准 XML 转义机制用于指定 XML 保留字符。

但即使有了这些,UnicodeString 属性与文档其他部分之间的关​​系还是相当复杂的。他们为此写了半页多,哪些组合有效,哪些无效。所以我建议你先阅读一下,然后再尝试进一步玩:-)

于 2009-11-17T08:18:15.703 回答
1

p.95 of the XPS 1.0 spec: "The standard XML escaping mechanisms are used to specify XML-reserved characters."

The '&' might be causing troubles.

于 2009-11-17T10:24:47.463 回答