Skip to content
This repository was archived by the owner on Jan 30, 2020. It is now read-only.

Commit 6253e9b

Browse files
committed
Fixed the Expires: 0 header
1 parent 29402ee commit 6253e9b

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/Header/Expires.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99

1010
namespace Zend\Http\Header;
1111

12+
use DateTime;
13+
use DateTimeZone;
14+
1215
/**
1316
* Expires Header
1417
*
@@ -25,4 +28,13 @@ public function getFieldName()
2528
{
2629
return 'Expires';
2730
}
31+
32+
33+
public function setDate($date)
34+
{
35+
if ($date === '0') {
36+
$date = date(DATE_W3C, 0); // Thu, 01 Jan 1970 00:00:00 GMT
37+
}
38+
return parent::setDate($date);
39+
}
2840
}

test/Header/ExpiresTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,14 @@ public function testPreventsCRLFAttackViaFromString()
5454
{
5555
$header = Expires::fromString("Expires: Sun, 06 Nov 1994 08:49:37 GMT\r\n\r\nevilContent");
5656
}
57+
58+
public function testExpiresSetToZero()
59+
{
60+
$expires = Expires::fromString("Expires: 0");
61+
$this->assertEquals('Expires: Thu, 01 Jan 1970 00:00:00 GMT', $expires->toString());
62+
63+
$expires = new Expires();
64+
$expires->setDate('0');
65+
$this->assertEquals('Expires: Thu, 01 Jan 1970 00:00:00 GMT', $expires->toString());
66+
}
5767
}

0 commit comments

Comments
 (0)