Bug 14052 - Incorrect parsing X-Forwarded-For header with multiple IPs
: Incorrect parsing X-Forwarded-For header with multiple IPs
Status: CLOSED WORKSFORME
: Sisyphus
(All bugs in Sisyphus/apache2-mod_rpaf)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2008-01-17 11:41 by
Modified: 2009-04-09 23:51 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-01-17 11:41:42
При прохождении запроса через несколько прокси-серверов в заголовке 
X-Forwarded-For может содержаться не один IP, а их список (с разделителями ',' 
или ';'). Т.е., например, в случае
  client -> Squid1 -> Squid2 -> nginx -> Apache
и использовании в конфигурации nginx конструкции 
  proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
значением X-Forwarded-For будет строка
"Client_IP, Squid1_IP, Squid2_IP"

mod_rpaf (как 0.5-alt3, так и 0.6) устанавливает REMOTE_ADDR равным всей строке 
X-Forwarded-For, что приводит к использованию _первого_ адреса из списка - 
который может быть как из диапазона частных сетей, так и легко 
сфальсифицированным клиентом.
При использовании authz_host_module для ограничения доступа к ресурсам такое 
поведение может привести к нежелательным последствиям.

Следует использовать последний адрес в цепочке, как делает mod_realip 
(http://sysoev.ru/mod_realip/readme.html).
------- Comment #1 From 2008-12-12 11:08:54 -------
Для 0.6-alt1 оно по-прежнему актуально.
------- Comment #2 From 2009-01-10 16:10:41 -------
похоже
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=377190
на это?
Если да, то я патч утяну-)
------- Comment #3 From 2009-01-12 10:58:25 -------
Похоже, что оно.

И заодно, подобное для X-Forwarded-Host делает Debian'овский
040_multiple_hostnames.patch.diff .
------- Comment #4 From 2009-01-12 13:34:08 -------
(In reply to comment #3)
> Похоже, что оно.
> 
приложил вроде. программист из меня не очень надо проверить.

> И заодно, подобное для X-Forwarded-Host делает Debian'овский 040_multiple_hostnames.patch.diff .
> 
этот патч для модуля первого апача.
------- Comment #5 From 2009-04-09 23:51:06 -------
жалоб нет, видимо работает