Grails URL映射字母数字id
我设法拥有一个分配了生成器的字符串id域,因此要显示/编辑的url是Grails URL映射字母数字id,url,grails,controller,mapping,url-mapping,Url,Grails,Controller,Mapping,Url Mapping,我设法拥有一个分配了生成器的字符串id域,因此要显示/编辑的url是/controller/action/alphanumeric\u id 在我进行漏洞测试之前,它工作得很好,所以当id包含斜杠(和反斜杠)时,我发现了一个问题,即使使用%2F(和%5C)编码,浏览器也会给出400个错误请求错误 我的映射是默认的/$controller/$action?/$id?,我使用验证器查看约束,以查看发生了什么,但当包含这些字符时,请求甚至没有到达那里 如果我访问/controller/action/?
/controller/action/alphanumeric\u id
在我进行漏洞测试之前,它工作得很好,所以当id包含斜杠(和反斜杠)时,我发现了一个问题,即使使用%2F(和%5C)编码,浏览器也会给出400个错误请求错误
我的映射是默认的/$controller/$action?/$id?
,我使用验证器查看约束,以查看发生了什么,但当包含这些字符时,请求甚至没有到达那里
如果我访问/controller/action/?id=alphanumeric\u id
一切都很顺利,但我想知道是否没有办法继续使用默认的短url
编辑:
- 创建一个新的grails应用程序(我的版本是2.1.3)李>
- 创建控制器李>
- 在任何操作中执行
,如果需要,也可以在UrlMapping中执行李>println params.id
- 尝试通过
访问控制器,一切正常李>/appname/controller/action/abc
- 现在尝试
或/appname/controller/action/a%2Fbc
,它给出了400个错误请求李>/appname/controller/action/a%5Cbc
- 使用
到%00
的其他组合也应该可以工作,但不是所有组合都可以,顺便说一句,%FF
也不能工作%00
有缺陷的组合:
%00
%2F
%5C
您可以尝试以下映射:/$controller/$action?/$id**?
可能只针对需要此url格式的控制器/操作更具体一些?@tim_yates抱歉,不起作用,但这是个想法。您使用的是什么版本的grails?也许?2.1.3,但我还没有空间问题。