首页 > 解决方案 > 任何现代浏览器真的没有办法在 XML 文件中应用远程 XSLT 样式表引用吗?

问题描述

大约十年前,您可以使用 IE8 在本地打开一个 XML 文件,当该 XML 文件包含 XSLT 样式表引用时:

<?xml-stylesheet href="https://trusted.org/stylesheet.xsl"?>

但是几年后,这对所有浏览器都停止了工作。有一个明显的安全问题,同源策略,Chrome(可能还有其他浏览器)甚至不允许本地文件:样式表引用,即使它来自完全相同的目录。

我理解为什么可能存在风险,但我不明白为什么 XSLT 特别会带来诸如在浏览器上实现的 XSLT 1.0 甚至不能做任何恶意的风险。OTOH,我可以很好地从本地文件中获取 JavaScript 脚本,如果我担心任何事情,那就是 java 脚本在做恶意的事情,而不是 XSLT!

我认为这个解决方案太苛刻了,而且没有公平地应用。用户应该有一种方法可以配置受信任的 URL,至少是受信任的 HTTPS URL,从那里可以加载此类样式表。如果没有,整个样式表功能基本上就被杀死了。

这件事的现状如何?为什么没有人解决这个问题?除了我之外,似乎没有人抱怨或意识到在 JavaScript 打开时 XSLT 被完全阻塞的讽刺意味?这似乎是一种无知的行为,甚至是故意试图扼杀 XSLT 功能的存在。

我知道有一些变通方法,例如使用一些特殊的命令行选项启动 chrome,这基本上会关闭所有此类安全性。但是,如果您使系统因所谓的安全问题而无法使用,然后只提供一种方法来通过关闭所有安全防护来克服这个问题,那么这一切的设计就更加无稽之谈了。没有意义。

注释?解决方案?


更新:似乎有一些 Windows / Internet Explorer 特定的方法可以将样式表 URL 配置为受信任的站点,因为我听说它适用于使用更高版本 IE 的人。但我不知道他们使用的是什么确切设置。很高兴听到有这个特定场景的人的消息。

标签: xmlxsltbrowser

解决方案


推荐阅读