Ignore 'unknown' in XFF
authorumherirrender <umherirrender_de.wp@web.de>
Mon, 27 Jan 2014 20:00:21 +0000 (21:00 +0100)
committerReedy <reedy@wikimedia.org>
Tue, 28 Jan 2014 00:39:20 +0000 (00:39 +0000)
Can come from Squid
http://www.squid-cache.org/Doc/config/forwarded_for/

Bug: 57467
Change-Id: I3fd3170d31a1aff2e748302c30dd6e364ed3bdcd

includes/WebRequest.php

index b42564c..a52894d 100644 (file)
@@ -1128,6 +1128,10 @@ HTML;
                        # unless the address is not sensible (e.g. private). However, prefer private
                        # IP addresses over proxy servers controlled by this site (more sensible).
                        foreach ( $ipchain as $i => $curIP ) {
+                               // ignore 'unknown' value from Squid when 'forwarded_for off' and try next
+                               if ( $curIP === 'unknown' ) {
+                                       continue;
+                               }
                                $curIP = IP::sanitizeIP( IP::canonicalize( $curIP ) );
                                if ( wfIsTrustedProxy( $curIP ) && isset( $ipchain[$i + 1] ) ) {
                                        if ( wfIsConfiguredProxy( $curIP ) || // bug 48919; treat IP as sane