如何防止执行脚本但在DOM中显示它?

时间:2013-11-07 07:14:47

标签: javascript html security textarea

我的html中有一个textarea,底部有一个button。按下按钮时我想在数据库中添加textarea的内容,我想用JQuery来显示它在DOM中但这很容易受到攻击,因为有人可能会这样写:

<script> some bad code here </script>

如何在DOM中插入并在显示它而不是运行它时阻止执行此代码(如显示<script>标记的facebook插入帖子,并且不允许执行它)

这个漏洞是攻击textarea形式的唯一途径吗?

2 个答案:

答案 0 :(得分:1)

如果通过类似这样的函数传递textarea值,该怎么办:

var escapeTags = function(str) {
   return str.replace(/</g, '&lt;').replace(/>/g, '&gt;');
}

当然,最好是这个服务器端。

答案 1 :(得分:1)

首选方法是在jQuery中使用text函数,因为这样可以在不调用Javascript解释器的情况下设置文本。

$("#txt_div").text("<script>alert('hello');</script>");

Here is a live example on jsbin.