我正在尝试绘制Play框架如何支持转义。
这是一个很好的页面,阐明了所需的功能:https
:
//www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
因此,我尝试将其与Play模板功能相关联,并充分了解Play的功能和不功能。
${}
或escape()
函数escapeJavaScript()
http://www.playframework.org/documentation/1.2/javaextensions另一个困惑点是对它的支持index.json
(即使用模板而不是HTML来构建JSON)。是${}
魔术切换到JSON文档中转义的JavaScript,还是仍逃脱HTML,因此JSON模板中的所有内容都必须具有显式的escapeJavaScript()
?
在http://www.playframework.org/documentation/1.2/javaextensions上也有一个addSlashes(),但是对于我能想到的任何情况似乎都不是很正确。(?)
拥有关于如何实现Play中所有转义功能的详尽指南,将是很棒的。在我看来,在某些情况下,答案是“自己动手”,但也许我错过了其中的内容。
我一直在研究这个问题,因此决定根据您已经拥有的内容,这份OWASP速查表和我自己的一些实验来写出自己的答案
HTML转义:
属性转义:(常见属性)
<a id=${data.value} href="...">...</a>
<a id='${data.value}' href="...">...</a>
% href=javascript:alert('XSS')
%' href=javascript:alert(window.location)
JavaScript转义:(以及复杂的属性)
<a onmouseover="x='${data.value}'; ..." href="...">...</a>
'; javascript:alert(window.location);//
CSS转义:
网址转义:
null
我正在尝试将Olark集成到我的应用程序中。为此,我必须在结束正文标记之前将其放入我的超文本标记语言中: 所以我把这个放在我的观点中。但是,得到的只是 整个脚本正在转换为一个 /。通过查看Play的文档,我看不出是什么原因造成的。有什么提示吗? 转义开始于
我已经使用try with资源重写了一个Play2/JDBC查询,但我不确定这是否正确。第一个try块处理Connection和准备语句。第二次尝试处理ResultSet。 理论上连接,语句和结果集在任何情况下都会被正确关闭?是这样吗?还是我错过了需要处理的东西? -- 向捕获块添加了日志记录。
**编程对象,Settings.UseJavaCP.Value=true。 Build.Scala
这个bug似乎是一个递归bug,公司要求工作表,而工作表又要求公司,这……你就明白了。我已经在互联网和堆栈溢出中搜索了这个问题,我发现了错误发生的原因,但解决方案始终是编写自己的解析器或使用flexjson或其他方法。我只是想知道是否有解决办法,这必须是因为游戏很受欢迎,人们肯定会在一次操作中获取帖子和评论,或者不是吗? 必须有一个解决方案,不需要替换掉json解析器或编写自己的解析器。 公司.j
问题内容: 我正在尝试使用Play的自动绑定功能,但没有成功。我正在Eclipse 4.4 Luna上用Java开发。 这是我的表格: 这是我的课程“用户”: 这是我的控制器: 我不知道为什么自动绑定值不起作用。我已经确保表单中的字段名称与类中的属性名称相对应,这对于表单绑定起作用就足够了,对吗? 我正在使用Eclipse Luna,并且关闭了自动项目构建(我从控制台手动进行)。我知道有时候Ecl