加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – XSL在Google Chrome中无法使用

发布时间:2020-12-16 08:01:19 所属栏目:百科 来源:网络整理
导读:我已经看到很多关于这个的全部帖子…但是对于我来说,我不知道我的问题是什么!当我尝试使用XSL转换XML时,Google Chrome只会显示一个空白页面。当我查看源代码时,我看到了原始的XML。 IE工程。 我有一个这样的XML文档… ?xml version="1.0" encoding="ISO-
我已经看到很多关于这个的全部帖子…但是对于我来说,我不知道我的问题是什么!当我尝试使用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(我没有自己测试)>将其上传到主机,一切都会很好。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读