JavaScript / <text area =“”> </text>

时间:2010-10-04 15:27:28

标签: javascript

alert("...");

var values = "value1
valu2part1 value2part2 
value3
valu4";
alert(values);

我正在分配:

var values = "<%=Model.Values%>";

这些值存储在数据库中。这些值是通过textarea输入的 在数据库中,每一行都由\t\r分隔。

当我使用:

将其带到JavaScript变量时
var values = "<%=Model.Values%>";

我得到的一些东西:

var values = "value1
valu2part1 value2part2
value3
valu4";

但这是错误的。我该怎么办?

2 个答案:

答案 0 :(得分:3)

var values = "<%=Model.Values%>";

这是不安全的。当字符串中有换行符时,它不仅会失败(因为JavaScript字符串文字不能跨越多行),值中的"也可能过早地结束字符串。如果值包含用户提交的数据,则表示脚本注入安全漏洞(XSS)。

要创建JS文字语法,请使用JSON序列化程序。例如JavaScriptSerializer

var values= <%= new JavaScriptSerializer().Serialize(Model.Values) %>;

或者例如Json.NET如果您使用的是较旧的.NET版本。

答案 1 :(得分:0)

在将字符串输出到JS之前,您可以使用转义序列(\n)替换新行。