每当将具有%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/

10-10 10:51