alert("...");

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


我正在分配:

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


这些值存储在数据库中。值通过文本区域输入
在数据库中,每行用\t\r分隔。

当我使用以下代码将其带入JavaScript变量时:

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


我得到一些类似的东西:

var values = "value1
valu2part1 value2part2
value3
valu4";


但这是一个错误。我能做什么?

最佳答案

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


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

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

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


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

关于javascript - JavaScript/<文本区域>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3856664/

10-10 00:12
查看更多