在Grails架构中,我们有一些请求可以在请求参数中发送%0d
和%0a
。这是用于换行和回车的Ascii编码文本。
在此请求中,还会返回发送的参数。这意味着我们应该发回%0a
%0d
但我们不是。您实际上可以在响应中看到新行和回车符。
我被告知这是一个安全风险因为我们解释了文本。这是对的吗?
是否有一个grails解决方案,您可以确保控制器无论是将Json返回到Ajax请求还是将模型转换为GSP解码编码文本。
由于
答案 0 :(得分:1)
查看grails文档的security section - 尤其是XSS Prevention部分。
如果您没有对请求参数进行编码 - 您应用的用户可以注入自己的代码来攻击您的应用。
我没有关于您的应用的详细信息,但您应将参数编码为html。
您可以在Config.groovy
:
grails.views.default.codec = "html"
如果设置此默认值,则必须注意双重编码。
如果tagLib
或插件也明确地将参数编码为html,则可能会发生这种情况。