根据关于XSS的文档,我在application.conf中包括了下面一行
future.escapeInTemplates=true
在我的webapp中,用户可以将注释添加到页面中。textfield接受用户输入的文本并将其保存到db.I中。
<script> alert('hi') </script>
这将保存在数据库中,并在browser.No警报弹出的occurs.Does中显示相同的内容,这意味着XSS问题没有发生?即使没有在escapeInTemplates=true中添加application.conf,程序也会给出相同的行为。
有一些关于将未消毒的html保存到其他地方上的警告,在将其保存到数据库之前,我是否应该使用Jsoup之类的方法来净化用户输入?
发布于 2012-03-29 12:57:50
escapeInTemplate并不阻止html被保存,它在模板中呈现时会转义它。来自播放框架1.2.4文档
Play的模板引擎自动转义字符串。如果确实需要在模板中插入未转义的HTML,可以使用字符串上的raw() Java扩展来实现。但是,如果字符串来自用户输入,则需要确保首先对其进行消毒。
因此,当html显示在模板中时,<SCRIPT>标记被转义到
<SCRIPT>https://stackoverflow.com/questions/9925183
复制相似问题