Search squid archive

Re: HTTP Header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Matus UHLAR - fantomas wrote:
Mehmet ÇELiK wrote:
In your vBulletin includes/init.php file change "define('IPADDRESS',
$_SERVER['REMOTE_ADDR']);" to "define('IPADDRESS',
$_SERVER['HTTP_X_FORWARDED_FOR']);".

No. I don't this. Because, this is not right method..

On 09.01.09 22:40, Amos Jeffries wrote:
In my PHP-apps I do the equivalent of this:

if ($trust_XFF && $_SERVER['HTTP_X_FORWARDED_FOR'])
  define('IPADDRESS', $_SERVER['HTTP_X_FORWARDED_FOR']);
else
  define('IPADDRESS', $_SERVER['REMOTE_ADDR']);

Is that working? Afaik, x-forwarded-for may contain more IP addresses, where
not all of them may be trusted. I think that proper validator should have
list of (un)trusted networks and match REMOTE_ADDR and HTTP_X_FORWARDED_FOR
until untrusted IP is found (the same waty as squid's follow_x_forwarded_for
directive does.

If anyone have such PHP, please paste a link. I think that could be used in
many other PHP applications (and I'd post that to horde people)

Actually come to think of it that way wrong anyways.

This is better...

function userIP()
{
        global $_SERVER;

        $ip="";
$l = explode(",",$_SERVER['HTTP_X_FORWARDED_FOR'].",".$_SERVER['REMOTE_ADDR']);
        rsort($l);
        foreach( $l as $key => $val) {
                if(!$val) continue;
                $bits="";

if(!ereg("((([0-9]{1,3}\.){3}([0-9]{1,3}))|([0-9a-f]{0,4}:(([0-9a-f]{1,4}:){0,6}|:)[0-9a-f]{0,4}))",$val, $bits))
                {
                        return ""; // BAD IP.
                }

                // TODO some test to see if its an acceptable IP.
                // return "";  if its not a good IP.

                $ip = $bits[1];
        }
        return $ip;
}


Amos
--
Please be using
  Current Stable Squid 2.7.STABLE5 or 3.0.STABLE11
  Current Beta Squid 3.1.0.3

[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux