1

注意:在从 Grails 1.3.6 升级到 2.2.2 的过程中。

如果我有一个标签,例如:

<g:message code="some.code.here" args="${[someHTML]}" />

即使在 Config.groovy 中设置了以下内容,它也将值编码为 HTML:

grails.views.default.codec = "none" 

这在 Grails 1.3.6 中不是问题。它为整个项目中的所有标签执行此操作。这是以这种方式传递链接所必需的,因为我们正在传递基于语言的链接。

知道为什么即使它在升级之前就可以正常工作,还是没有解决方法?

如果 HTML 在 .properties 文件中,则呈现良好。如果变量只是嵌入到页面中,它可以正常工作。将它作为参数传递给 g:message 的行为会导致它出错。我曾尝试使用 <%=someHTML%> 方式将其传入,但它似乎不喜欢那样,告诉我我缺少报价。

4

1 回答 1

2

由于 XSS 漏洞 (GRAILS-7170),g:message 已更改。有关在某些情况下(例如您的用例)继续使用 HTML 参数的解决方法,请参阅http://jira.grails.org/browse/GRAILS-10099 。

于 2013-06-18T18:44:19.820 回答