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";
但这是错误的。我该怎么办?
答案 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
)替换新行。