mirror of
https://github.com/apache/httpd.git
synced 2025-08-10 02:56:11 +00:00
Do not double encode encoded slashes
In case that AllowEncodedSlashes is set to NoDecode do not double encode encoded slashes in the URL sent by the reverse proxy to the backend. * include/ap_mmn.h: Document the addition of ap_proxy_canonenc_ex to the API. * modules/proxy/mod_proxy.h: Declare ap_proxy_canonenc_ex and define flag values. * modules/proxy/proxy_util.c: Implement ap_proxy_canonenc_ex by modifying ap_proxy_canonenc accordingly and reimplement ap_proxy_canonenc to use ap_proxy_canonenc_ex with the appropriate flag. * modules/http2/mod_proxy_http2.c, modules/proxy/mod_proxy_*.c: Set the correct flag based on the AllowEncodedSlashes configuration and use ap_proxy_canonenc_ex instead of ap_proxy_canonenc. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1908341 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@ -107,8 +107,11 @@ static int proxy_balancer_canon(request_rec *r, char *url)
|
||||
search = r->args;
|
||||
}
|
||||
else {
|
||||
path = ap_proxy_canonenc(r->pool, url, strlen(url), enc_path, 0,
|
||||
r->proxyreq);
|
||||
core_dir_config *d = ap_get_core_module_config(r->per_dir_config);
|
||||
int flags = d->allow_encoded_slashes && !d->decode_encoded_slashes ? PROXY_CANONENC_NOENCODEDSLASHENCODING : 0;
|
||||
|
||||
path = ap_proxy_canonenc_ex(r->pool, url, strlen(url), enc_path, flags,
|
||||
r->proxyreq);
|
||||
search = r->args;
|
||||
}
|
||||
if (search && *ap_scan_vchar_obstext(search)) {
|
||||
|
Reference in New Issue
Block a user