From c847bc4d5e1f27ee531a661a2e5053931a51899f Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Wed, 25 Jan 2012 09:01:15 -0600 Subject: [PATCH] added cookie storage limit exception. --- laravel/session/drivers/cookie.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/laravel/session/drivers/cookie.php b/laravel/session/drivers/cookie.php index 321c4211..10f2cf8a 100644 --- a/laravel/session/drivers/cookie.php +++ b/laravel/session/drivers/cookie.php @@ -23,9 +23,7 @@ class Cookie implements Driver { { if (\Laravel\Cookie::has(Cookie::payload)) { - $cookie = Crypter::decrypt(\Laravel\Cookie::get(Cookie::payload)); - - return unserialize($cookie); + return unserialize(Crypter::decrypt(\Laravel\Cookie::get(Cookie::payload))); } } @@ -43,6 +41,14 @@ class Cookie implements Driver { $payload = Crypter::encrypt(serialize($session)); + // A cookie payload can't exceed 4096 bytes, so if the encrypted payload + // is greater than that, we'll throw an exception so the developer can + // switch to another session driver for the application. + if (strlen($payload) > 4000) + { + throw new \Exception("Session payload too large for cookie."); + } + \Laravel\Cookie::put(Cookie::payload, $payload, $lifetime, $path, $domain); }