Blog Posts » PHP » Konsep Forever Login (SESSION vs COOKIE)
Konsep Forever Login (SESSION vs COOKIE)
Susah sekali membuat login forever yang benar-benar aman tapi efisien. Jika dengan session bisa dibuat forever tetapi selama browser belum ditutup. Menggunakan session lebih aman karena data login tersimpan di server. Lain halnya jika menggunakan cookie maka data login akan tersimpan di browser. Dan ini tidak aman jika kita tidak menyimpan dengan hash yang aman. Karena cookie bisa dilihat dan diedit dengan mudah. Misal menggunakan suatu Add-on di Mozilla Firefox. Disisi lain hash juga memiliki kemungkinan collision (duplikat). Contohnya pada penggunaan session_id() untuk autentikasi login. Seperti kasus yang kadang kita alami saat memasuki suatu situs tiba-tiba kita sudah login sebagai suatu user. Karena kita beruntung mendapatkan session_id yang sama dengan suatu user. Jika ingin tetap mengambil resiko ini maka pada panel user untuk mengubah password harus disediakan input verifikasi untuk password sekarang atau lama. Agar seseorang yang beruntung tersebut tidak bisa mengubah password karena walaupun telah login kemungkinan besar dia tidak tahu password-nya. Namun konsekuensinya dia tetap bisa bisa menjelajahi panel. Untuk menghindari collision jika menggunakan session_id mungkin bisa ditambah dengan prefix agar lebih unik. Misal {user_id}-{session_id}. Lalu bagaimana konsep yang paling baik untuk forever login? Entahlah, mungkin banyak cara yang bisa dilakukan seperti menyimpan lebih dari satu token atau hash pada cookie. Semakin rumit maka akan semakin aman. Tetapi kalau kita juga memperhatikan masalah efisiensi maka ini akan menjadi lebih sulit lagi dan akan banyak pertimbangan.
Catatan:
* Untuk membuat forever login atau login selamanya meskipun browser telah ditutup sepertinya memang harus melibatkan cookie, dengan catatan browser mendukung cookie.
* Cookie bisa tidak aman tetapi pada pemanfaatan yang tepat ia tidak akan menimbulkan masalah.
* Jangan pernah menyimpan password di cookie.
(admin)