我经常看到Grails示例代码,其中程序员调用了一个名为的方法encodeAsHTML()
.我想我应该在我的Grails应用程序中使用它(出于安全原因,我假设?),但我想知道何时应该使用此方法.什么对象/属性/等.是该encodeAsHTML()
方法的候选人?
谢谢!
使用encodeAsHTML()
(或encodeAsJavaScript
等)用于您从用户那里获得的所有内容.对于可由用户修改的每个字符串(从输入表单,从请求参数,从外部API调用等)获取
也可以看看:
https://en.wikipedia.org/wiki/Cross-site_scripting
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
我不确定这是什么时候引入Grails,但是如果在Config.groovy
你设置中,grails.views.default.codec="html"
那么encodeAsHTML()
只要你${}
在GSP中使用就会被调用.
资料来源:http://alwaysthecritic.typepad.com/atc/2010/06/grails-gsp-html-escaping-confusion.html