微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xml – XSL在Google Chrome中无法使用

我已经看到很多关于这个的全部帖子…但是对于我来说,我不知道我的问题是什么!当我尝试使用XSL转换XML时,Google Chrome只会显示一个空白页面。当我查看源代码时,我看到了原始的XML。 IE工程。

我有一个这样的XML文档…

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="http://localhost/xsl/listXSL.PHP"?>
<links>
  <link id="1" name="Google Home Page" url="http://www.google.com/" clicks="0" />
  <link id="2" name="Facebook" url="http://www.facebook.com/" clicks="1" />
  <link id="3" name="Gmail" url="http://gmail.com" clicks="2" />
</links>

…然后链接的XSL文件看起来像这样…

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <xsl:for-each select="links/link">
    <a>
        <xsl:attribute name="href">
            <xsl:value-of select="@url" />
        </xsl:attribute>
        <xsl:value-of select="@name" />
    </a><br />
  </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

您可能会注意到,XSL文件实际上是一个PHP文件,但是这在其他浏览器中可以正常工作,我已经尝试将其更改为.xsl for Chrome,但是没有帮助。我在这里做错什么?

这不行的原因是由于安全问题,铬已经解决一个有争议的方式 [1] [2] [3] [4],通过阻止XML文件访问同一目录中的本地XSLT文件,而HTML文件可以访问.CSS文件在同一个目录只是罚款。

Chrome团队在2008年给出的理由是this

想象这种情况:

>您收到一封包含网页作为附件的攻击者的电子邮件,您将下载该邮件
>您在浏览器中打开现在本地的网页。
>本地网页创建一个代码https://mail.google.com/mail/
>由于您已登录Gmail,该框架会将邮件加载到收件箱中。
>本地网页通过使用JavaScript来访问帧[0​​] .document.documentElement.innerHTML来读取帧的内容。 (互联网网页将无法执行此步骤,因为它来自非Gmail来源;同源策略会导致读取失败。)
>本地网页将您的收件箱的内容放入并通过表单POST将数据提交给攻击者的Web服务器。现在攻击者有您的收件箱,这可能对垃圾邮件或识别盗窃有用。

Gmail无法防御此次攻击。

我同意这是烦人的,作为一个修复你有两个解决方案:

>尝试使用–allow-file-access-from-files开关运行chrome(我没有自己测试)>将其上传到主机,一切都会很好。

原文地址:https://www.jb51.cc/xml/293247.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。