我在 GSP 中有以下内容:
<%=model.something%>
在 Config.groovy 中,我有:
grails {
views {
gsp {
encoding = 'UTF-8'
htmlcodec = 'xml' // use xml escaping instead of HTML4 escaping
codecs {
expression = 'html' // escapes values inside null
scriptlet = 'html' // escapes output from scriptlets in GSPs
taglib = 'html' // escapes output from taglibs
staticparts = 'none' // escapes output from static template parts
}
}
// escapes all not-encoded output at final stage of outputting
filteringCodecForContentType {
//'text/html' = 'html'
}
}
}
但是当我在控制器中设置 model.something = "<script>alert('something')</script>" 并渲染视图时,我得到了警告框。
如果我将其更改为使用 ${model.something} ,它似乎可以正确转义。但为了安全起见,我想确保 scriptlet 输出也被编码。我是否需要配置中的其他内容才能做到这一点?