在将它们设置为textarea的值之前,我必须转义字符串吗?

时间:2014-12-09 12:16:36

标签: javascript jquery html escaping

在以下情形中:

var evil_string = "...";
$('#mytextarea').val(evil_string);

在将它用作textarea元素的值之前,是否必须转义不受信任的字符串?

据我所知,如果我想稍后对它进行任何操作,我将不得不小心处理字符串,但这是将字符串放入textarea而不会逃避固有危险的行为吗?

我做了一些基本测试,通常的特殊字符&'"<似乎成功地添加到textarea而没有解释。

2 个答案:

答案 0 :(得分:1)

不,你不需要这样做。当你直接赋予DOM元素的属性(jQuery的.val在幕后做)时,数据被逐字解释。您只需要使用明确将输入视为HTML的方法引用文本 - 即outer/innerHTML等。

答案 1 :(得分:0)

将非转义字符串作为文本框或textareas的值放置很好。当您在HTML中放入可能被解释为其他HTML的字符串时,您只需要担心它。一般来说,这意味着当文本可能是某些HTML DOM元素的子元素时,您应该转义字符串。这可以在服务器上完成(如lolka_bolka建议),或者在将潜在危险的字符串添加到DOM之前在客户端上完成。