<div id="foo"></div>
而且您试图滥用属性值,例如:
$('#foo').attr('rel', '"></div><script>alert("bang");</script><div rel="');
您可能担心这会导致类似以下的结果:
<div id="foo" rel=""></div><script>alert("bang");</script><div rel=""></div>
尽管看起来很恶劣,但这种情况永远不会发生。确实会有一个rel
属性,其值为那个恶意字符串,但不会创建任何新的标记或DOM节点。该字符串本身没有被转义 - 它只是被视为一个字符串而已,不会被解释为标记。
.val()
或其他DOM API支持的方法进行设置的。我刚刚加入了一些澄清说明。 - jmar777encodeForHTMLAttribute()
(看起来像是ColdFusion实用程序?),但我建议在这里进一步阅读该主题:https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#RULE_.232_-_Attribute_Escape_Before_Inserting_Untrusted_Data_into_HTML_Common_Attributes - jmar777我只想补充一点,当在具有可能导致代码执行的副作用的属性中插入值时,确实需要担心。这些包括可用于xss的图像src属性。请参见:https://www.owasp.org/index.php/Script_in_IMG_tags