某些情况下document.documentURI可用但不是document.URL

时间:2013-11-04 15:10:40

标签: html url dom

在通过location sources进行DOM XSS攻击时,我试图了解它们在使用中的差异(即在哪里使用什么)。根据MDN,document.documentURIdocument.URL之间存在差异。

  

HTML文档具有document.URL属性,该属性返回相同的值。与URL不同,documentURI适用于所有类型的文档。

任何人都可以解释只有documentURI可用而不是URL的情况吗?

修改

我想知道实际发生这种情况的一些具体情况。

2 个答案:

答案 0 :(得分:2)

document.documentURI可用于 HTML 文档和非HTML 文档。

document.URL可在 HTML 文档中找到。


示例:

<?xml version="1.0" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">

  <circle cx="250" cy="250" r="50" fill="red" />

  <script type="text/javascript">
  <![CDATA[
  alert(document.URL);
  alert(document.documentURI);
  ]]>
  </script>

</svg>

第一个提醒(document.URL)将是undefined

答案 1 :(得分:-2)

URI(统一资源定位符)被拆分为URN和URL。

URL就是HTML文档在Web上的位置,一个定位器以及一个URN,就像一个人名或街道地址。

因此URI标识并指向文件。 URL只是在没有完整标识的情况下定位文件的方法(因为它只是使用URN的URI的唯一部分)。

希望这有帮助