I may have messed up, but this change is meant to return 400 early for
requests with a fully qualified URI that is not http/https and that no
forward-proxy module wants to handle (i.e. none did set r->proxyreq =
PROXYREQ_PROXY at post_read_request time, like forward proxy modules
do).

Those requests end up being handled by the http module as if they were
http, which looks wrong to me.

Regards;
Yann.

On Tue, Dec 14, 2021 at 6:26 PM Roy T. Fielding <field...@gbiv.com> wrote:
>
> This is a little confusing. It looks from the comment and code like the
> change is restricting the request target that can be sent through a proxy,
> which would be wrong.
>
> OTOH, it would make sense that the proxy itself (the thing to which the
> proxied request is being sent) is limited to http(s) because that is a feature
> of HTTP. Is that what was intended?
>
> ....Roy
>
> > On Dec 14, 2021, at 9:10 AM, Roy T. Fielding <field...@gbiv.com> wrote:
> >
> > I am pretty sure that this isn't correct, or at least seems like overkill.
> > We should definitely block unix: from being forwarded, but why would
> > we want to block things like a urn: resolver?
> >
> > To be clear, I'd rather remove all proxy functionality from httpd than
> > suggest to the world that http(s) schemes are the only names that
> > can be proxied through HTTP. It would break the Web architecture,
> > so -1 to that.
> >
> > ....Roy
>

Reply via email to