Keamanan Bukan Fitur Opsional
Di era digital saat ini, keamanan web bukan lagi nice-to-have — ini adalah keharusan absolut. Satu vulnerability bisa menghancurkan reputasi bisnis yang dibangun bertahun-tahun. Sebagai developer, memahami vektor serangan umum dan cara mencegahnya adalah tanggung jawab profesional yang tidak bisa didelegasikan sepenuhnya ke tim security.
Cross-Site Scripting (XSS)
XSS terjadi ketika aplikasi menampilkan input pengguna tanpa sanitisasi yang tepat, memungkinkan penyerang menyisipkan script berbahaya. Ada tiga jenis XSS yaitu Stored XSS yang disimpan di database, Reflected XSS yang dikirim via URL, dan DOM-based XSS yang terjadi di client-side JavaScript.
Pencegahannya dimulai dari prinsip sederhana: jangan pernah trust input dari pengguna. Gunakan library sanitisasi seperti DOMPurify untuk membersihkan HTML content. Di React, penggunaan dangerouslySetInnerHTML harus diminimalisir dan selalu disertai sanitisasi terlebih dahulu.
SQL Injection
Meskipun ORM modern seperti GORM sudah melindungi dari SQL injection secara default, risiko tetap ada ketika developer menulis raw query. Selalu gunakan parameterized queries dan hindari string concatenation untuk membangun SQL statement. Satu celah SQL injection bisa memberikan akses penuh ke seluruh database Anda.
JWT: Bukan Peluru Perak
JSON Web Token populer untuk authentication, namun implementasi yang ceroboh bisa menjadi vulnerability serius. Jangan simpan data sensitif di JWT payload karena bisa di-decode oleh siapa saja. Selalu validasi signature dengan algoritma yang aman, set expiration yang reasonable, dan pertimbangkan token rotation untuk session yang long-lived.
CORS: Memahami Cross-Origin Resource Sharing
Konfigurasi CORS yang terlalu permisif dengan wildcard origin adalah kesalahan klasik. Ini membuka pintu untuk request berbahaya dari domain mana pun. Selalu whitelist domain spesifik yang diizinkan, dan batasi HTTP methods serta headers yang diperbolehkan.
Secure Headers
HTTP security headers sering diabaikan padahal implementasinya sangat mudah. Content-Security-Policy mencegah loading resource dari domain yang tidak diizinkan. Strict-Transport-Security memaksa koneksi HTTPS. X-Frame-Options mencegah clickjacking. Tambahkan header-header ini di middleware server Anda sebagai lapisan pertahanan tambahan.