Apache decodificando ponto-e-vírgula - mod_proxy

1

Apache, recebendo uma solicitação com um ponto-e-vírgula codificado (% 3B) está decodificando-o antes de passar a solicitação para um proxy (backend do Spring Tomcat).

Linhas hospedeiras virtuais apache relevantes são:

ProxyPreserveHost on
RequestHeader set X-Forwarded-Proto https
ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/

Então, por exemplo, quando um pedido de URL como

http://testsite.com/page/%27+many+times%3B+the+valiant/author

O proxy será encaminhado como

http://testsite.com/page/%27+many+times/author

Existe algo que eu possa fazer para evitar que o apache decodifique essa URL antes de encaminhá-la para o proxy?

Talvez problema relevante observado em apache.org/bugzilla

    
por Baker 20.09.2017 / 23:59

1 resposta

2

mod_proxy canonicalize os URLs passados para o back-end. Se você quiser suprimir esse comportamento, use nocanon keyword e isso passa o caminho da URL "raw" para o backend.

Por exemplo:

ProxyPass / http://127.0.0.1:8081/ nocanon
    
por 21.09.2017 / 00:43