html标记之间是否可以进行xss攻击,而<和>编码? 例如:
<tag>{{output}}</tag>
如果&#34;&lt;&#34;,&#34;&gt;&#34; in {{output}}被编码为&#34;&amp; lt;&#34;,&#34;&amp; gt;&#34;和<tag>
不能<script>
,可以xss发生了吗?
答案 0 :(得分:3)
首先,需要说手动实现自己的XSS过滤器几乎总是一个糟糕的主意。。
它们通常很容易被规避,特别是通过编码有效负载(例如,<
可以将URL编码为%60
等)。尽可能使用平台提供的本机转义功能更安全(也更可取)。例如,PHP中为htmlspecialchars
,Python中为html.escape
,依此类推。
在您的具体示例中,<
或>
无法使用XSS,因为您的输出是在标记之间插入而在 之间插入例如在属性值中)。在其他情况下,您的原始过滤器无法防范XSS:
<img src="{{output}}">
插入值" onerror="alert(1)
将导致此XSS:
<img src="" onerror="alert(1)">
如果您能提供帮助,请不要实施自己的过滤器。以下是一些OWASP文档: