Play Framework 中转义引号的正确位置在哪里?

2024-01-07

我有以下流程:

  1. 向用户呈现一个表单。
  2. 他填写表单字段,然后提交给控制器,控制器将其保存到数据库
  3. 在另一个页面上,控制器从数据库中获取这条记录,并将其传递给视图
  4. 视图将其捕获为 JavaScript 变量:var foo = '${user.bar}';

现在,如果用户以以下形式输入此字符串:

I have a quote - ' - very dangerous

然后报价会一直传递到数据库并返回,并产生一个corruptJavaScript 语句:

var foo = 'I have a quote - ' - very dangerous';

逃离这个角色的最佳地点是什么?如何?我不想为每个模板的使用手动执行此操作,这很乏味且容易出错。


数据就是数据。如果它包含引用,它就包含引用,并且必须以这种方式存储在数据库中。当将此 String 用作 JavaScript 字符串文字时,您需要转义引号。

您可以使用 Apache commons-langStringEscapeUtils.escapeECMAScript()方法来做到这一点,或者您可以将 Java 对象编码为 JSON 字符串,并在 JavaScript 代码中解析 JSON 字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Play Framework 中转义引号的正确位置在哪里? 的相关文章

随机推荐