Lompat ke konten utama
←

Backend Node.js Dasar: Rute, Middleware, dan Pengujian

Pelajaran 11 dari 19

Middleware: pencatat, penangkap galat, dan token

Sesi, cookie, dan hash kata sandi (konsep)

Setelah pelajaran ini kamu bisa menulis handler login yang membandingkan hash kata sandi bergaram, membuat sesi di server, memasang cookie sesi beratribut aman, dan middleware yang membaca cookie itu serta menolak sesi yang tidak dikenal atau kedaluwarsa.

  • ±13 menit
  • 3 latihan
  • Diperiksa 28 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

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…e71a

HttpOnly 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.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Server memasang Set-Cookie: sid=9f2c…e71a; Secure; SameSite=Lax; Path=/; Max-Age=7200 tanpa HttpOnly. Risiko apa yang terbuka karena atribut itu tidak ada?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke

Tampilkan 1 lagi