是否有关闭HTML标记的通用方法?
我正在测试一个web应用程序的XSS漏洞,我想知道攻击者是否有可能在不知道或不关心之前的HTML标记的情况下关闭它 因此,假设前面的标记(攻击者未知)是是否有关闭HTML标记的通用方法?,html,tags,xss,Html,Tags,Xss,我正在测试一个web应用程序的XSS漏洞,我想知道攻击者是否有可能在不知道或不关心之前的HTML标记的情况下关闭它 因此,假设前面的标记(攻击者未知)是。攻击者是否可能执行以下操作 没有……但是如果您想在防御XSS的同时允许一些HTML,那么除了将HTML解析到DOM、将每个元素和属性传递给白名单之外,不应该使用任何方法,然后自己将其序列化回HTML。没有……但是如果您想在防御XSS的同时允许一些HTML,那么除了将HTML解析到DOM、将每个元素和属性传递给白名单,然后自己将其序列化回HTML
。攻击者是否可能执行以下操作
没有……但是如果您想在防御XSS的同时允许一些HTML,那么除了将HTML解析到DOM、将每个元素和属性传递给白名单之外,不应该使用任何方法,然后自己将其序列化回HTML。没有……但是如果您想在防御XSS的同时允许一些HTML,那么除了将HTML解析到DOM、将每个元素和属性传递给白名单,然后自己将其序列化回HTML之外,不应该使用任何方法。否,没有通用的方法来关闭标记,但攻击者可以只堆叠几个常见的标记结尾,例如:
</div></span></p></table>
代码无论如何都是无效的,但浏览器会通过忽略不适用的标记(在本例中为div
和table
标记)或隐式创建匹配的起始标记(在本例中为p
标记)来尽量利用代码
最终结果是,在大多数情况下,攻击者会突破一个或多个元素,可能会在途中添加一些空元素。不,没有通用的方法来关闭标记,但攻击者可以只堆叠一些常见的标记结尾,例如:
</div></span></p></table>
代码无论如何都是无效的,但浏览器会通过忽略不适用的标记(在本例中为div
和table
标记)或隐式创建匹配的起始标记(在本例中为p
标记)来尽量利用代码
最终的结果是,在大多数情况下,攻击者会破坏一个或多个元素,可能会在途中添加一些空元素。一种更好、更轻量级的方法是只对所有数据进行HTML编码。将
<html>
<body>
<div id="the-one-im-looking-for"><span id="my-attack-element" style="display:none;"> </span>
<script type="text/javascript">
window.alert(document.getElementById("my-attack-element").parentNode.tagName);
</script>
</div>
</html>
alert(document.getElementById(“我的攻击元素”).parentNode.tagName);
我喜欢垃圾邮件结束标记的方法…一种更好、更轻量级的方法是只对所有数据进行HTML编码。将
<html>
<body>
<div id="the-one-im-looking-for"><span id="my-attack-element" style="display:none;"> </span>
<script type="text/javascript">
window.alert(document.getElementById("my-attack-element").parentNode.tagName);
</script>
</div>
</html>
alert(document.getElementById(“我的攻击元素”).parentNode.tagName);
我喜欢垃圾邮件结束标签的方法…答案几乎肯定是否定的,但攻击者肯定会知道它是什么标签?答案几乎肯定是否定的,但攻击者肯定会知道它是什么标签?