Hi André, Chris,

Just to park the proxy idea for a moment, I found the link below from 2008.
It looks like a minor change to the Catalina WebAppLoader class might solve
the problem and let me provide a custom HTTPS URL protocol handler. Have I
misread this?

http://tomcat.10.x6.nabble.com/Custom-URL-handlers-in-Tomcat-web-app-td2006418.html

Thanks,
Diarmuid
 On 8 Jan 2015 22:08, "André Warnier" <a...@ice-sa.com> wrote:

> dmccrthy wrote:
>
>> Chris, André,
>>
>> Many thanks. I hadn't considered either the MITM or Apache HTTPD angles.
>> The proxy idea occurred to me (sorry, I had a typo in my original mail and
>> that may not have been clear) but I agree it's messy.
>>
>> Many thanks again, I just couldn't find anything that said yes it can be
>> done, or no it can't. A 3rd party feature request is a last resort so I
>> had
>> to find out if there was some under-the-bonnet way. I really appreciate
>> your insights into this.
>>
>>
> No problem.
>
> For the sake of completeness, the only thing which made me cautious about
> using an already-made proxy server such as Apache httpd, is the question of
> the DNS lookups (or rather the "resolver" in the machine itself), if you
> play with the fake entry in the hosts file.
> Consider the following scenario :
> - the webapp in question wants to connect to "server.company.com:8000"
> - to divert this to your own local proxy, you define "server.company.com"
> in the local hosts file as 127.0.0.1 (the localhost), and you set up a
> local httpd to listen on 127.0.0.1:8000, to do the proxying.
> - thus when the webapp builds its TCP connection to "
> server.company.com:8000" - presumably by looking up "server.company.com"
> first - it gets back (from the local OS's resolver) the IP address
> 127.0.0.1, and builds a TCP connection to 127.0.0.1.
> Then over that connection, it sends a HTTP 1.1 request including a "Host:
> server.company.com" header.
> So far so good.
> - your httpd proxy catches this connection and the request.
> - now the proxy has itself to build a connection to the "real"
> server.company.com.
> So it does a lookup (using the local OS's TCP stack) for the IP address of
> "server.company.com", to build its own connection to it.
> And.. it gets back 127.0.0.1 as an IP address (because of course that
> lookup also looks in the local hosts file first).
>
> That would be kind of a self-inflicted DOS attack, and it would be
> interesting to see how quickly the proxy would blow up.
>
> I am not quite sure how you would "corrupt" the httpd proxy code not to do
> that (*).
> If you tell it to connect to the IP address of that remote host instead,
> it may not work as expected, if that remote host happens to be configured
> with Virtual Hosts itself (which work by name).
>
> You may be able to configure your webapp to connect to another fake
> hostname, rather than the real destination one.  In that case, there is a
> workaround : define that fake hostname as 127.0.0.1, instead of the real
> destination one.
> But otherwise, you may be in trouble.
>
>
> (*) well, actually I do have an idea, but it involves an Apache httpd with
> perl/mod_perl on it, and some devious perl coding to mess around with the
> proxy request before mod_proxy sends it out.  If it is really important to
> you, and you find no other solution, I could point you to a good consultant
> for this kind of thing.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to