Materi
Token Bearer dikirim aplikasi lewat header Authorization. Aplikasi web berbasis halaman memakai sesi: setelah login berhasil, server menyimpan catatan sesi dan mengirim nomornya lewat Set-Cookie. Browser lalu menyertakan nomor itu di header Cookie pada setiap permintaan berikutnya ke situs yang sama.
HTTP/1.1 200 OK
Set-Cookie: sid=9f2c…e71a; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=7200
GET /pesanan HTTP/1.1
Cookie: tema=gelap; sid=9f2c…e71aHttpOnly melarang JavaScript halaman membaca cookie lewat document.cookie. Secure membuatnya hanya dikirim lewat HTTPS. SameSite=Lax menahannya pada permintaan lintas situs, kecuali navigasi tingkat atas. Max-Age adalah umurnya dalam detik. OWASP meminta nomor sesi berentropi paling sedikit 64 bit dan tidak bermakna, jadi siapa penggunanya hanya tercatat di server.
Kata sandi tidak pernah disimpan apa adanya. OWASP meminta fungsi hash yang sengaja lambat, seperti Argon2id, scrypt, atau bcrypt, dengan garam acak yang unik per pengguna. Saat login, kata sandi kiriman di-hash ulang dengan garam tersimpan lalu dibandingkan. Penolakannya satu pesan umum untuk surel tak terdaftar maupun sandi salah, supaya penyerang tidak bisa menebak surel mana yang terdaftar.
Latihan tidak punya modul kripto, jadi hashTiruan dan buatSid di kode awal hanya tiruan; di Node perannya diambil crypto.scrypt dan crypto.randomBytes.