我有以下流程:
- 用户被展示一个表单。
- 他填写表单字段,并提交到控制器,控制器将此持久化到数据库
- 在另一个页面上,控制器从数据库中获取该记录,并将其传递给视图
- 视图将其作为Javascript变量捕获:
var foo =' $ {user.bar}';
现在,如果用户在表格中输入这个字符串:
I have a quote - ' - very dangerous
然后这个引用被传递到数据库和返回,导致一个损坏的 javascript 语句:
var foo = 'I have a quote - ' - very dangerous';
什么是避免此字符的最佳方法,该如何实现?我不想为每个模板使用手动处理,这样既繁琐又容易出错。
${user.bar.addSlashes().raw()}
?它相当冗长且容易出错。http://www.playframework.org/documentation/1.2.4/javaextensions - ripper234var foo = '@user.bar.escapeJavaScript()';
。请访问http://www.playframework.org/modules/rythm了解更多关于Rythm模板引擎的信息。 - Gelin Luo