Skip to content

Commit 931965a

Browse files
committed
bug symfony#32096 Don't assume port 0 for X-Forwarded-Port (alexbowers, xabbuh)
This PR was merged into the 3.4 branch. Discussion ---------- Don't assume port 0 for X-Forwarded-Port | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | none added | Fixed tickets | | License | MIT | Doc PR | - If you use X-Forwarded-Host but don't provide X-Forwarded-Port, it will default to `0.0.0.0:` which then assumes port `0` instead of following its default assumption based on the scheme. Commits ------- adcdd93 PHP 5 compat 6c49a0c Add test case c266d6c Update Request.php 23db9be Don't assume port 0 for X-Forwarded-Port
2 parents feab919 + adcdd93 commit 931965a

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/Symfony/Component/HttpFoundation/Request.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1037,8 +1037,8 @@ public function getPort()
10371037
$pos = strrpos($host, ':');
10381038
}
10391039

1040-
if (false !== $pos) {
1041-
return (int) substr($host, $pos + 1);
1040+
if (false !== $pos && $port = substr($host, $pos + 1)) {
1041+
return (int) $port;
10421042
}
10431043

10441044
return 'https' === $this->getScheme() ? 443 : 80;

src/Symfony/Component/HttpFoundation/Tests/RequestTest.php

+12
Original file line numberDiff line numberDiff line change
@@ -2427,6 +2427,18 @@ public function testTrustedPort()
24272427

24282428
$this->assertSame(443, $request->getPort());
24292429
}
2430+
2431+
public function testTrustedPortDoesNotDefaultToZero()
2432+
{
2433+
Request::setTrustedProxies(['1.1.1.1'], Request::HEADER_X_FORWARDED_ALL);
2434+
2435+
$request = Request::create('/');
2436+
$request->server->set('REMOTE_ADDR', '1.1.1.1');
2437+
$request->headers->set('X-Forwarded-Host', 'test.example.com');
2438+
$request->headers->set('X-Forwarded-Port', null);
2439+
2440+
$this->assertSame(80, $request->getPort());
2441+
}
24302442
}
24312443

24322444
class RequestContentProxy extends Request

0 commit comments

Comments
 (0)