当标签前面有几个字符或者可能被省略时,是否有可能或可能img
解析标签或任何其他字符?<
这会在任何著名的 HTML 解析器中发生吗?
例如
<div>$test</div>
.
where$test
可以是任何包含 a 的字符串>
,但不是 a <
。比如img>
,但不是<img
完全披露:这个问题是专门看我发表的评论是否正确。
好吧,出于好奇,我更改了我的一个测试页面,因此它的脚本部分从以下内容开始:
< script>
结果完全被破坏了,只打印了我所有的 javascript。这发生在 IE9、GC28 和 Firefox 中。我手头并没有真正要测试的图像,但我认为我们可以从中得出,HTML 标记始终需要在尖括号和标记声明之间没有空格。
如果您想进一步确认,我建议您浏览 W3C 标准化文档,看看是否可以找到它们声明 HTML 元素标记的通用模式的位置。许多 HTML 解析器可能以这些文档为基础以简化其编码。
从技术上讲,您不需要 < 或 >。在 IE 中加载它,它会运行一个 javascript 警报。不确定是否可以不弄乱字符集。
<HTML>
<HEAD>
<META charset="UTF-7">
</HEAD>
<BODY>
<DIV>+ADw-script+AD4-alert(+ACI-XSS+ACI-)+ADw-/script+AD4-</DIV>
</BODY>
</HTML>
标记名后允许有空格
< script>
有效时
<script>
无效