Cara umum untuk memeriksa dukungan cookie adalah melalui pengalihan.
Sebaiknya lakukan ini hanya saat pengguna mencoba melakukan sesuatu yang memulai sesi, seperti masuk, atau menambahkan sesuatu ke keranjang mereka. Jika tidak, bergantung pada cara Anda menanganinya, Anda berpotensi memblokir akses ke seluruh situs Anda untuk pengguna - atau bot - yang tidak mendukung cookie.
Pertama, server memeriksa data login seperti biasa - jika data login salah, pengguna menerima umpan balik itu seperti biasa. Jika benar, maka server segera merespons dengan cookie dan pengalihan ke halaman yang dirancang untuk memeriksa cookie itu - yang mungkin saja URL yang sama tetapi dengan beberapa bendera yang ditambahkan ke string kueri. Jika halaman kedua itu tidak menerima cookie, maka pengguna menerima pesan yang menyatakan bahwa mereka tidak dapat masuk karena cookie dinonaktifkan di browser mereka.
Jika Anda sudah mengikuti pola Post-Redirect-Get untuk form login Anda, maka pengaturan dan pemeriksaan cookie ini tidak menambahkan permintaan tambahan - cookie dapat diatur selama pengalihan yang ada, dan diperiksa oleh tujuan yang memuat setelah pengalihan.
Sekarang mengapa saya hanya melakukan uji cookie setelah tindakan yang dimulai oleh pengguna selain pada setiap pemuatan halaman. Saya telah melihat situs menerapkan uji cookie pada setiap halaman, tidak menyadari bahwa ini akan berdampak pada hal-hal seperti mesin telusur yang mencoba merayapi situs tersebut. Artinya, jika pengguna mengaktifkan cookie, cookie pengujian disetel sekali, jadi mereka hanya perlu menahan pengalihan pada halaman pertama yang mereka minta dan sejak saat itu tidak ada pengalihan. Namun, untuk browser atau agen pengguna lainnya, seperti mesin telusur, yang tidak mengembalikan cookie, setiap halaman dapat dengan mudah menghasilkan pengalihan.
Metode lain untuk memeriksa dukungan cookie adalah dengan Javascript - dengan cara ini, pengalihan tidak diperlukan - Anda dapat menulis cookie dan membacanya kembali secara virtual untuk melihat apakah itu disimpan dan kemudian diambil kembali. Kelemahan dari ini adalah ini berjalan dalam skrip di sisi klien - yaitu jika Anda masih ingin pesan tentang apakah cookie didukung untuk kembali ke server, maka Anda masih harus mengaturnya - seperti dengan panggilan Ajax.
Untuk aplikasi saya sendiri, saya menerapkan beberapa perlindungan untuk serangan 'Login CSRF', varian dari serangan CSRF, dengan menyetel cookie yang berisi token acak di layar login sebelum pengguna login, dan memeriksa token tersebut saat pengguna mengirimkan login mereka detailnya. Baca lebih lanjut tentang Login CSRF dari Google. Efek sampingnya adalah saat mereka masuk, saya dapat memeriksa keberadaan cookie itu - pengalihan tambahan tidak diperlukan.