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.
penampakan session dan csrf laravel
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.

Leave a comment

Your email address will not be published. Required fields are marked *