Apache接收到一个带有编码分号(%3B)的请求,在将请求传递给代理(Spring Tomcat的后端)之前将其解码。
相关的apache虚拟主机行是:
ProxyPreserveHost on RequestHeader set X-Forwarded-Proto https ProxyPass / http://127.0.0.1:8081/ ProxyPassReverse / http://127.0.0.1:8081/
所以例如当一个URL的请求像
http://testsite.com/page/%27+many+times%3B+the+valiant/author
将代理转发为
http://testsite.com/page/%27+many+times/author
有什么我可以做的,以防止阿帕奇解码该URL之前转发给代理?
也许在apache.org/bugzilla上提到相关的问题
mod_proxy
规范化传递给后端的URL。 如果要禁止这种行为,请使用nocanon
关键字,并将URLpath“raw”传递给后端。
例如:
ProxyPass / http://127.0.0.1:8081/ nocanon