内容不会出现在正文中

时间:2015-04-01 09:10:29

标签: javascript

我有一个文件a.html,其中包含以下内容:

<script>
var x=document.URL.substring(document.URL.indexOf('#')+1);
document.write(x);  
alert(document.body.innerHTML);
</script>
<body>

</body>

当我浏览a.html#somevalueh;alert(1)</script>时,为什么只有"somevalueh;alert(1)"而不是</script>部分出现在身体内?

我正在使用chrome btw。

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为</script>标记对浏览器具有特殊含义,并且它具有开始标记,因此它正在静默删除它。

尝试转义网址以获得如下提示:

<script>
var x=document.URL.substring(document.URL.indexOf('#')+1);
document.write(escape(x));  
alert(document.body.innerHTML);
</script>
<body>

</body>

这将为您提供输出:

somevalueh%3Balert%281%29%3C/script%3E

逃避特殊字符。

<强> 更新
你可能也想试试这个。 只需使用您的html,就可以将somevalueh;alert(1)</script>更改为somevalueh;<script>alert(1)</script>

然后检查您的网页,您必须在身体标记中看到<script></script>