在div中设置用户文本并阻止XSS

时间:2014-05-26 07:31:18

标签: javascript jquery xss

我有一个文本框,用户可以在其中输入他的电子邮件地址。 当他点击"空间"键,我用这个文本创建一个新的div。

问题是用户可以输入:<script>alert(1);</script>,例如,如果我使用$('#textbox').val(),则脚本正在运行。

所以我尝试使用jquery .html()并给出编码字符串,但它在chrome,firefox和旧版本的IE中都不起作用。

如何阻止脚本运行并将用户值设置为div?

2 个答案:

答案 0 :(得分:1)

如果要在输入的输入中转义标记,请使用jquery.text()

var t = $('#textbox').val();
$('#div1').text(t);

答案 1 :(得分:0)

使用jQuery的.text方法将只返回没有HTML标签的文本

$("#textbox").text();