matomo-org/matomo

IP::getNonProxyIpFromHeader retrieves final proxy instead of client

Open

#7.060 geöffnet am 21. Jan. 2015

Auf GitHub ansehen
 (8 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)PHP (2.847 Forks)batch import
BugHelp wanted

Repository-Metriken

Stars
 (21.513 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 8T 11h) (106 gemergte PRs in 30 T)

Beschreibung

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.

Contributor Guide