在通过location sources进行DOM XSS攻击时,我试图了解它们在使用中的差异(即在哪里使用什么)。根据MDN,document.documentURI
和document.URL
之间存在差异。
HTML文档具有
document.URL
属性,该属性返回相同的值。与URL
不同,documentURI
适用于所有类型的文档。
任何人都可以解释只有documentURI
可用而不是URL
的情况吗?
修改
我想知道实际发生这种情况的一些具体情况。
答案 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的唯一部分)。
希望这有帮助