XPS文档的安全性如何?从XPS文档的内部查看后,找到了Unicode-string属性。有人可以注入e.x.一个脚本进入Unicode字符串属性?
XPS查看器如何处理Unicode字符串属性?作为一组字形还是什么?
更新:我将以下字符串添加为UnicodeText
!@#$%^&*()_+
并且XPS查看器拒绝打开该文件。这就是我想到这个问题的方法
答案 0 :(得分:16)
与(咳嗽) some other format相对的XPS文档不能包含脚本或活动内容。它们仅 用作高保真预打印格式。话虽如此,XPS解析器并非完全不可能包含安全漏洞。他们可以被剥削。到目前为止,我还没有听说过任何这样的漏洞。
但回到你的观点。如果有人想将脚本放入XPS文档中的字符串中,他肯定可以这样做。他不应该指望它被执行。如果某些软件确实 那么,那么它可能是软件的安全问题,而不是文件格式。
仅仅因为您可以将恶意软件放入文本文件(请记住iloveyou.vbs?),这并不意味着文本文件本身存在安全漏洞: - )
ETA:有问题的UnicodeString属性有助于在XPS文件中进行搜索:
UnicodeString属性包含由当前元素表示的Unicode标量值数组。指定Unicode字符串是推荐的,因为它支持搜索,选择和可访问性。
虽然字符串本身应该采用某种格式(在第115页的标准中也有详细说明),但观众不想接受您的输入的原因是它甚至不是格式良好的XML &符号(&
)似乎没有转义。我假设如果您按照XML的要求将&符号编码为&
,它将起作用。该规范还指出
标准的XML转义机制用于指定XML保留字符。
但即使有了这个,UnicodeString属性和文档的其他部分之间的关系也非常错综复杂。他们写了超过半页,哪些组合是有效的,哪些组合不是。所以我建议你先阅读,然后再尝试进一步发挥: - )
答案 1 :(得分:1)
XPS 1.0规范的第95页:“标准的XML转义机制用于指定XML保留字符。”
'&'可能会引起麻烦。