Bab 6 dari 7 · 30 menit
Topik Lanjutan: Keamanan, Real-Time, dan Skalabilitas
Pengembangan aplikasi skala nyata memerlukan perhatian khusus pada keamanan autentikasi, komunikasi real-time, dan pemisahan beban komputasi. Dalam menyimpan kata sandi pengguna, dilarang keras menyimpan teks asli atau menggunakan algoritma cepat seperti MD5. Gunakan pustaka bcrypt atau argon2 yang menyisipkan salt acak secara otomatis dan menyediakan cost factor untuk menahan serangan brute-force.
Untuk menjaga sesi autentikasi tanpa beban state di memori server, standar industri mengandalkan JSON Web Token (JWT). Token terdiri dari Header, Payload, dan Signature kriptografis. Klien mengirim token melalui header Authorization: Bearer <token>. Simpan access token di cookie yang memiliki flag httpOnly dan secure guna meminimalkan risiko pencurian melalui serangan XSS.
Validasi data masukan dari pengguna merupakan garis pertahanan utama. Jangan mempercayai masukan dari klien secara mentah. Gunakan pustaka validator berbasis skema seperti Zod. Keuntungan Zod adalah kemampuannya menurunkan tipe statis otomatis saat dikombinasikan dengan TypeScript.
Ketika aplikasi membutuhkan komunikasi interaktif dua arah tanpa jeda seperti obrolan instan atau notifikasi langsung, protokol WebSocket menggantikan siklus request-response HTTP tradisional. Pustaka Socket.IO mempermudah implementasi WebSocket dengan menyediakan fitur sambung ulang otomatis, saluran room, namespace, dan fallback transport.
Untuk menjaga kecepatan respons dan meringankan beban basis data relasional, terapkan pola cache-aside menggunakan Redis. Data hasil kueri yang sering diminta disimpan di memori Redis dengan batas masa berlaku (TTL). Tugas berat yang memakan waktu lama seperti pengiriman email massal atau konversi gambar harus dipindahkan keluar dari siklus HTTP menuju sistem antrean pekerjaan latar belakang seperti BullMQ.
Cek pemahaman
1. Mekanisme pengamanan access token JWT yang paling tahan terhadap serangan pencurian Cross-Site Scripting (XSS) adalah menyimpannya di...
2. Pustaka Zod memungkinkan pembuatan skema validasi yang sekaligus dapat menghasilkan tipe TypeScript secara otomatis.
3. Pustaka manakah yang paling tepat digunakan untuk mengelola antrean pekerjaan latar belakang (background queue) berbasis Redis di Node.js?


