哪里是逃脱游戏框架报价的适当位置?(Where is the proper place to esc

2019-07-29 19:17发布

我有以下流程:

  1. 甲用户呈现的形式。
  2. 他填写表单域,并提交给控制器,它仍然存在这给DB
  3. 在另一页时,控制器会从数据库这个记录,并将其传递到视图
  4. 视图捕获它作为一个JavaScript变量: var foo = '${user.bar}';

现在,如果用户输入该字符串形式:

I have a quote - ' - very dangerous

随后该帖经过一路的DB和回来,在一个腐败的JavaScript语句的结果通过了:

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

什么是逃避这个角色,以及如何最好的地方? 我不想为每个模板的使用做手工,这是繁琐且容易出错。

Answer 1:

该数据是数据。 如果它包含报价,它包含报价,并且它必须被存储在数据库中的方式。 你需要逃避报价使用该字符串AA JavaScript字符串字面时。

你可以使用Apache公地郎StringEscapeUtils.escapeECMAScript()方法来做到这一点,或者你可以编码您的Java对象转换为JSON字符串,并分析你的JavaScript代码的JSON字符串。



文章来源: Where is the proper place to escape quotes in Play Framework?