为什么IE在查看XML文件时会提示安全警告?

为什么IE在查看XML文件时会提示安全警告?,xml,internet-explorer,Xml,Internet Explorer,在Internet explorer中打开XML文件会发出安全警告。IE有一个很好的可折叠树视图来查看XML,但是默认情况下它是禁用的,并且您会收到关于潜在安全漏洞的可怕错误消息。 但是为什么呢?简单地查看XML文件(不在其中运行任何嵌入式宏或任何东西)怎么可能是一个安全漏洞?当然,我知道运行XSLT可能会做一些不好的事情,但我们并不是说执行任何东西。我们在谈论观看。为什么IE不能简单地将XML文件显示为文本(加上可折叠树查看器) 那他们为什么要把这贴上安全漏洞的标签呢?有人能描述一下查看XM

在Internet explorer中打开XML文件会发出安全警告。IE有一个很好的可折叠树视图来查看XML,但是默认情况下它是禁用的,并且您会收到关于潜在安全漏洞的可怕错误消息。

但是为什么呢?简单地查看XML文件(不在其中运行任何嵌入式宏或任何东西)怎么可能是一个安全漏洞?当然,我知道运行XSLT可能会做一些不好的事情,但我们并不是说执行任何东西。我们在谈论观看。为什么IE不能简单地将XML文件显示为文本(加上可折叠树查看器)

那他们为什么要把这贴上安全漏洞的标签呢?有人能描述一下查看XML文档是如何被用作攻击文档的吗

IE仍在渲染文档,尽管最终它会向您显示您喜欢的漂亮树视图。它实际显示的是XML文件的转换版本。IIRC使用XSLT将文档转换为DHTML。因此,文档仍在通过其渲染引擎运行。如果在呈现文档的过程中,出现一个标记,表示

<object ... />


IE可能会获取对象并将其加载到文档中。如果对象是一个恶意的ActiveX控件或一点恶意的Java,它就会运行。

我认为Ian是不对的。实际上,可折叠树查看器是HTML,它包含JavaScript。IE将XML呈现为彩色的可折叠HTML,扩展/折叠代码用JavaScript实现。然后,IE点击默认的安全策略,该策略阻止它在从本地文件系统打开的文件中执行JS,并警告您如何限制“此网页”运行脚本


您可以通过以下方式进行验证:如果您不选择“允许阻止的内容”,则展开/折叠将不起作用。如果允许脚本运行,则展开/折叠将突然开始工作。

谢谢。对他们来说,这听起来像是一种愚蠢的方式,这几乎肯定不是用户想要的,但我想我现在可以理解它是如何发生的。XML没有被呈现,XSLT产生的DHTML是。DHTML包含
对象
元素的唯一方法是XSLT插入一个,而它没有。使用转义的标记字符转换源元素;如果不是的话,就不会展示了。罗伯特:你说得对。更多的讨论见下面的答案。真的吗?我猜我假设XML尖括号被转换为,以便显示而不是呈现-这将防止Ian的
标记示例加载任何类型的恶意代码。Joel,我不在家,但今晚我将发布我在MSDN网站上找到的链接,该链接详细说明了IE是如何使用XSL的(在IE 6中)和XSLT(在IE>6中)将XML转换为DHMTL。它特别提到解析XML中包含的样式表以生成最终呈现。脚本内容是一种外推。我在工作时似乎无法在这里再次找到链接,但它在我的浏览器历史记录中。哦,这不是关于XML文件中可能存在的不安全标记,而是与f相关的恶意xsl我现在知道了,谢谢。接下来。这里是我获得IE将XSLT转换为DHTML的信息的地方:Joel,你的观点(为扩展/折叠发出的javascript)实际上是这个信息栏的直接原因。