Bug #77612 [NEW]: setcookie() sets incorrect SameSite header if all of its options filled
| From: | yura3d at tut dot by | Date: | Wed, 13 Feb 2019 12:19:36 +0000 |
| Subject: | Bug #77612 [NEW]: setcookie() sets incorrect SameSite header if all of its options filled | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-219550@lists.php.net to get a copy of this message | ||
From: yura3d at tut dot by
Operating system: Debian 9.7/Kernel 4.9.0
PHP version: 7.3.2
Package: HTTP related
Bug Type: Bug
Bug description:setcookie() sets incorrect SameSite header if all of its options filled
Description:
------------
If I call setcookie(string $name, string $value, array $options) with
all of options passed (expires, path, domain, secure, httponly,
samesite), PHP generates incorrect Set-Cookie HTTP header: SameSite
parameter is empty if I set "Lax", or "Str" if I set "Strict". But if
I
miss, for example, one option for setcookie (let it be "path"),
everything is fine. This behavior doesn't depend on cookie value length.
Test script:
---------------
setcookie('key', 'value', [
'expires' => time() + 31536000,
'path' => '/',
'domain' => 'example.com',
'secure' => true,
'httponly' => true,
'samesite' => 'Lax'
]);
// Expected:
// Set-Cookie: key=value; expires=Thu, 13-Feb-2020 12:06:47 GMT;
Max-Age=31536000; path=/; domain=example.com; secure; HttpOnly;
SameSite=Lax
// Actual:
// Set-Cookie: key=value; expires=Thu, 13-Feb-2020 12:06:47 GMT;
Max-Age=31536000; path=/; domain=example.com; secure; HttpOnly;
SameSite=
--
Edit bug report at https://bugs.php.net/bug.php?id=77612&edit=1
--
Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=77612&r=trysnapshot54
Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=77612&r=trysnapshot55
Try a snapshot (trunk): https://bugs.php.net/fix.php?id=77612&r=trysnapshottrunk
Fixed in SVN: https://bugs.php.net/fix.php?id=77612&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=77612&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=77612&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=77612&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=77612&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=77612&r=support
Expected behavior: https://bugs.php.net/fix.php?id=77612&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=77612&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=77612&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=77612&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=77612&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=77612&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=77612&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=77612&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=77612&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=77612&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=77612&r=mysqlcfg