Support for X-HTTPD-FORWARDED-FOR Re: [Zope-dev] Speaking of 2.6...

Jim Washington jwashin@vt.edu
Wed, 10 Apr 2002 15:34:18 -0400


>
>
>>Correct me if I'm wrong, but this IMO makes spoofing against a naked 
>>ZServer a childs play. It's just adding a custom header to the request.
>>I also doubt that every reverse proxy overwrites this header, so 
>>zservers behind a proxy might also be hit.
>>
>
>Note:  this is using another web server to front for zope.  It turns out
>to be fairly safe -- I have used a variant for quite a while and did
>quite a bit of testing.  For short hand, I am going to call the other web
>server apache.  Apache presumably uses something like getpeername to
>fill in its idea of HTTP_X_FORWARDED_FOR or REMOTE_ADDR.  If the remote
>user attempts to spoof it (by using hidden variables, or other HTTP
>based techniques), the Zope server interprets this is a list, rather
>than the expected string.  This is easy to detect, and in fact, if you
>fail to handle it, you will probably simply error out.
>
>If the attacker is using TCP spoofing, there is really not much you can
>do at an application level.
>
>On the other hand, I am now conviced that this is not an intelligent
>thing to do, not even for presentation.  You already have Apache in
>front, so why not use rewriting rules to make the URL distinguishable.
>In this way, you can use one of the BASE or URL variables to determine
>how the person got in.  This gives you pretty much the same level of
>control (especially if you are worried only about internal/external) as
>using IP addresses, without modifying either Zope or Apache.
>
Jim, Oliver

Thanks. I'm glad we have smart and knowledgeable people available to 
discuss these kinds of things.  My hope was that I could restrict my 
Manager account to a short list of machines, even through a squid or 
apache proxy.  Essentially add a third thing to have besides username 
and password.  Which I still think is better than just username and 
password, since Zope sees only *one* ip address coming from squid in the 
current situation.  I'll have to do some more thinking...

Regards,

-- Jim Washington