Apache декодирует точку с запятой - mod_proxy

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 перед его перенаправлением на прокси?

Возможно, соответствующая проблема отмечена на apache.org/bugzilla

1
задан 21 September 2017 в 00:59
1 ответ

mod_proxy канонизировать URL-адреса, передаваемые на бэкэнд. Если вы хотите подавить такое поведение, используйте ключевое слово nocanon , и это передаст URL-путь "raw" серверной части.

Например:

ProxyPass / http://127.0.0.1:8081/ nocanon
3
ответ дан 3 December 2019 в 18:29

Теги

Похожие вопросы