JSP字符串用"输入"造成问题

时间:2012-02-09 14:44:09

标签: java javascript string google-app-engine jsp

我有app引擎应用程序,它使用java servlet将消息保存到用户发布的数据存储区(使用表单)。

String content = req.getParameter("message");
message.setProperty("content", content);

当稍后在JSP中处理消息时,如果用户在键入消息时点击“输入”,则会收到运行时错误。

messageArray[<%=i%>]= {
                    content:  "<%=message.getProperty("content")%>",

我该如何解决这个问题?我想保存“输入”以正确显示消息。

谢谢!

1 个答案:

答案 0 :(得分:1)

您将不得不使用类似JSON编码的东西来使字符串安全地包含在JavaScript源代码中。无论如何,你应该这样做,以防止明显的XSS攻击。

JavaScript不允许字符串常量中的原始换行符。如果你想,你可以创建自己的EL函数来清理字符串,将不可打印的字符转换为\uXXXX转义,并确保嵌入的引号前面有反斜杠。