realip_module
Anatoli Marinov
toli at webforge.bg
Tue Aug 16 13:17:53 UTC 2011
Thanks m-r Dounin,
I understood your point of view. The patch is not correct.
Thank you.
On 08/16/2011 03:42 PM, Maxim Dounin wrote:
> Hello!
>
> On Tue, Aug 16, 2011 at 02:40:29PM +0300, Anatoli Marinov wrote:
>
>> My patch for this issue was:
>> @@ -157,16 +157,13 @@
>> len = r->headers_in.x_forwarded_for->value.len;
>> ip = r->headers_in.x_forwarded_for->value.data;
>>
>> - for (p = ip + len - 1; p> ip; p--) {
>> - if (*p == ' ' || *p == ',') {
>> - p++;
>> - len -= p - ip;
>> - ip = p;
>> - break;
>> - }
>> - }
>> + p = ip;
>>
>> - break;
>> + while(*p != ','&& *p != ' '&& p< p + len){
>> + p++;
>> + }
>> + len = p - ip;
>> + break;
>>
>> default: /* NGX_HTTP_REALIP_HEADER */
> This patch is just wrong: it picks first address from
> X-Forwarded-For which may be easily forged.
>
> Maxim Dounin
>
>> @@ -414,6 +411,7 @@
>>
>> On 08/16/2011 12:46 PM, Anatoli Marinov wrote:
>>> Hello mates,
>>> I tried readip_module and I found it does not work as I expect.
>>> For example the header may looks like this:
>>> X-Forwarded-For: client1, proxy1, proxy2
>>>
>>> Where client1 should be the real ip address of the client, proxy1
>>> should be the first proxy after the client and proxy2 should be
>>> the last proxy after the client and the first before the nginx.
>>> Nginx has the connection with proxy2.
>>> I think In this case readip_module should return client1 ip
>>> address. It returns the latest address in the field - proxy2.
>>> What do you think? Is the behaviour wrong or I do not understand
>>> the meaning of this header?
>>>
>>> p.s. http://en.wikipedia.org/wiki/X-Forwarded-For
>>>
>>> Thanks in advance.
>>> A. Marinov
>>>
>>>
>>> _______________________________________________
>>> nginx-devel mailing list
>>> nginx-devel at nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-devel
>> _______________________________________________
>> nginx-devel mailing list
>> nginx-devel at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-devel
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel
More information about the nginx-devel
mailing list