playframework1中的java XSS预防。2.4
根据documentation on XSS,我在应用程序中包括了以下行。形态
future.escapeInTemplates=true
在我的webapp中,用户可以向页面添加评论。textfield接受用户的文本输入并将其保存到db。我输入以下行作为注释
<script> alert('hi') </script>
这将按原样保存在数据库中,并在浏览器中显示。没有出现警报弹出窗口。这是否意味着XSS问题没有发生? 即使不在应用程序中添加escapeInTemplates=true。conf时,程序会给出相同的行为
有一些关于将未初始化的html保存到数据库的警告elsewhere。那么,在将用户输入保存到db之前,我是否应该使用Jsoup之类的工具来清理用户输入
# 1 楼答案
escapeInTemplate
不会阻止保存html,在模板中呈现时会转义html。从Play Framework 1.2.4 docs开始:因此,当html显示在模板中时,
<SCRIPT>
标记转义到