0

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

<script> some bad code here </script>

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

这个漏洞是攻击 textarea 表单的唯一方法吗?

4

2 回答 2

1

如果您通过这样的函数传递 textarea 值怎么办:

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

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

于 2013-11-07T07:24:19.673 回答
1

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

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

这是 jsbin 上的一个活生生的例子。

于 2013-11-07T18:47:30.037 回答