每当将具有%2F
(它是/
的十六进制代码)的URL发布到我的JBOSS Server时,都会出现错误:
HTTP 400 Bad Request error message.
这是网址:
http://localhost:8080/application/**abc%2Fhi**?msg=hello"
如果我从网址中删除
%2F
,则链接可以正常工作。此
%2F
必须是URL的一部分,不能是请求参数。 最佳答案
最终找出了原因(对于JBoss和Apache而言)。两种应用程序都故意拒绝带有编码斜杠的URI(%2F
的/
和%5C
的\
),以防止可能的安全漏洞。
链接:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0450
http://securitytracker.com/id/1018110(请参阅第4节。解决方案)
以下是他们在JBoss中启用此行为的说明:
对于Apache,这就像在apache conf或vhost conf中的某个位置设置“AllowEncodedSlashes NoDecode”一样简单(但是在.htaccess中不起作用)。
Apache链接:http://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes
关于http - 如果%2F是JBOSS中GET URL的一部分,则会收到HTTP 400错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4069002/