Bug 14052

Summary: Incorrect parsing X-Forwarded-For header with multiple IPs
Product: Sisyphus Reporter: Nikolay A. Fetisov <naf>
Component: apache2-mod_rpafAssignee: Boris Savelev <boris>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: vvk
Version: unstable   
Hardware: all   
OS: Linux   

Description Nikolay A. Fetisov 2008-01-17 11:41:42 MSK
При прохождении запроса через несколько прокси-серверов в заголовке 
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 Nikolay A. Fetisov 2008-12-12 11:08:54 MSK
Для 0.6-alt1 оно по-прежнему актуально.
Comment 2 Boris Savelev 2009-01-10 16:10:41 MSK
похоже
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=377190
на это?
Если да, то я патч утяну-)
Comment 3 Nikolay A. Fetisov 2009-01-12 10:58:25 MSK
Похоже, что оно.

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

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