Setiap url yang dibuka akan membuat session baru di Laravel. File session tersebut disimpan di folder storage/framework/sessions
, contohnya
$ ls storage/framework/sessions 0cOPowo6PFw8DSEhKJlByzQaehNOeSxVIVQEbK5p nvRkhQDonKQbdmgpQtgJFMMmUpMyzZJKu93AxghI DNwXYwqnEmxN0UNYjFDAPmWfi07CGzbrBcOk5H6U SORPKlAs2oNnWIgKA9ujUbGTBLRf9p40KC6xPexw KjNQmP7t0d5XVcfLRWK9iG5D4pVrzx4Em3VvROrQ
makin banyak pengunjung anda makin banyak pula session yang dibuat.
CSRF (Cross-site request forgery) sendiri digunakan untuk mencegah user menjalankan aksi yang tidak diingikan, dengan CSRF ini juga melindungi aplikasi dari bot karena di setiap FORM yang dikirim harus mengikutkan token CSRF yang sudah digenerate oleh server sebelumnya.
Bila anda menggunakan Laravel untuk SPA dan authentikasinya ditangani oleh aplikasi lainnya, fitur SESSION dan CSRF ini bisa dinonaktifkan untuk mengurangi beban server dan mempercepat aplikasi Laravel.
Penyimpanan Session Laravel
Bila anda menggunakan bawaan Laravel dan tidak ada merubah konfigurasi SESSION_DRIVER
akan default menggunakan file. Beberapa alternative yang bisa digunakan adalah database, memcached, redis dan dynamodb.
Dari alternative tersebut yang paling banyak digunakan adalah redis karena stabilitas dan kecepatannya. Jika aplikasi anda tidak membutuhkan HTTP Session maka solusi ini tidak diperlukan karena tetap menggunakan resource server.
Disable HTTP Session
Konfigurasi Session di Laravel disimpan di Kernel.php (app/Http/Kernel.php
), ubah baris
\App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \App\Http\Middleware\VerifyCsrfToken::class
menjadi
// \App\Http\Middleware\EncryptCookies::class, // \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, // \Illuminate\Session\Middleware\StartSession::class, // \App\Http\Middleware\VerifyCsrfToken::class
dengan begitu ke empat file tersebut tidak akan dipanggil di Laravel.