matomo-org/matomo

IP::getNonProxyIpFromHeader retrieves final proxy instead of client

Open

#7060 aperta il 21 gen 2015

Vedi su GitHub
 (8 commenti) (0 reazioni) (0 assegnatari)PHP (2847 fork)batch import
BugHelp wanted

Metriche repository

Star
 (21.513 star)
Metriche merge PR
 (Merge medio 8g 11h) (106 PR mergiate in 30 g)

Descrizione

IP::getNonProxyIpFromHeader attempts to retrieve the client IP address from headers configured in proxy_client_headers[]. This calls IP::getLastIpFromList, excluding proxies configured via proxy_ips[].

What I do not understand is why by default this returns the last IP, whereas the format for X-Forwarded-For is client, proxy1, proxy2, ...: http://en.wikipedia.org/wiki/X-Forwarded-For#Format

This only becomes an issue when running Piwik behind multiple proxies; for example the configuration in question is:

[Enterprise Appliance] => [IIS ARR] => [Piwik]

So Piwik sees:

X-Forwarded-For: <client>, <enterprise_appliance>

Basically the current behavior would seem to select the IP of the last proxy by default. This would be problematic in a scenario with variable proxy IPs.

Guida contributor