使用动态预标签阻止XSS

时间:2013-11-30 14:27:12

标签: javascript xss

根据专家建议,用户内容(replyContent)包含在<pre>标记中以缓解XSS,如下所示。但为什么每个人都说下面的代码避免了XSS?

无论如何,我试图注入</pre><script>alert("XSS");</script><pre>,但它成功阻止了尝试并显示了代码片段。

那么,它是否足够(已经有代码去掉像&lt;,&gt;,/,'和&amp;等特殊字符)或有没有办法绕过这种保护?

任何想法??

代码段:

$row = $("<tr class='wp_replies_tr'></tr>"); 
...  
$msgColumn5 = $("<td width='112' class='wp_msgCol5'></td>");
$preTag = $("<pre class='wp_reply_content'></pre>");
$pre.text( replyContent );
$msgColumn5.html($pre);
$row.append($msgColumn5);

1 个答案:

答案 0 :(得分:2)

$pre.text( replyContent );将输入转换为HTML,因此可以阻止注入(doc)。 $msgColumn5.html($pre);使用已经过清理过的$pre