merged branch neilferreira/master (PR #4472)

Commits
-------

85db221 Since getClientIp() no longer takes a parameter, removed that old test
7b5328f getClientIp() will now only return valid IP addresses, rather than assuming the X_FORWARDED_FOR is the first comma seperated value.

Discussion
----------

getClientIp() will now only return valid IP addresses, rather than assuming the X_FORWARDED_FOR is the first comma seperated value.

Fixes #4471

I'm not sure why an empty string was being returned in the first place, rather than null.  Any ideas?

---------------------------------------------------------------------------

by travisbot at 2012-05-31T08:59:12Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1485615) (merged 68c17e07 into 78747e6c).

---------------------------------------------------------------------------

by travisbot at 2012-05-31T09:02:57Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1485634) (merged 9c1ba1c4 into 78747e6c).

---------------------------------------------------------------------------

by neilferreira at 2012-05-31T09:04:16Z

Sorted, I'm guessing I need to squash the commits?

---------------------------------------------------------------------------

by travisbot at 2012-05-31T09:21:30Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1485732) (merged 7b5328f1 into 78747e6c).

---------------------------------------------------------------------------

by igorw at 2012-05-31T09:38:07Z

With what value did it fail? Can you add a test case for that `HTTP_X_FORWARDED_FOR ` value?

---------------------------------------------------------------------------

by neilferreira at 2012-05-31T10:45:11Z

Anyone have any idea why that function returns an empty string instead of null ?

---------------------------------------------------------------------------

by neilferreira at 2012-05-31T11:34:12Z

@igorw done, I've also removed an old test that should have been removed when getClientIp() started using the 'trust proxy' variable concept.

---------------------------------------------------------------------------

by travisbot at 2012-05-31T11:38:19Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1486534) (merged 85db2213 into 78747e6c).
This commit is contained in:
Fabien Potencier 2012-05-31 19:36:01 +02:00
commit 4d46da7d08
2 changed files with 10 additions and 3 deletions

View File

@ -546,9 +546,16 @@ class Request
if ($this->server->has('HTTP_CLIENT_IP')) {
return $this->server->get('HTTP_CLIENT_IP');
} elseif ($this->server->has('HTTP_X_FORWARDED_FOR')) {
$clientIp = explode(',', $this->server->get('HTTP_X_FORWARDED_FOR'), 2);
$clientIp = explode(',', $this->server->get('HTTP_X_FORWARDED_FOR'));
return isset($clientIp[0]) ? trim($clientIp[0]) : '';
foreach ($clientIp as $ipAddress) {
$cleanIpAddress = trim($ipAddress);
if (false !== filter_var($cleanIpAddress, FILTER_VALIDATE_IP)) {
return $cleanIpAddress;
}
}
return '';
}
}

View File

@ -552,7 +552,6 @@ class RequestTest extends \PHPUnit_Framework_TestCase
{
$request = new Request();
$this->assertEquals('', $request->getClientIp());
$this->assertEquals('', $request->getClientIp(true));
$server = array('REMOTE_ADDR' => $remoteAddr);
if (null !== $httpClientIp) {
@ -584,6 +583,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
array('2620:0:1cfe:face:b00c::3', true, '::1', '2620:0:1cfe:face:b00c::3', null),
array('2620:0:1cfe:face:b00c::3', true, '::1', null, '2620:0:1cfe:face:b00c::3, ::1'),
array('88.88.88.88', true, '123.45.67.89', null, '88.88.88.88, 87.65.43.21, 127.0.0.1'),
array('88.88.88.88', true, '123.45.67.89', null, 'unknown, 88.88.88.88'),
);
}