Web Security#csrf#cookies#backend

CSRF dijelaskan dengan bahasa manusia

CSRF memaksa browser korban mengirim permintaan yang tidak dia kirim sendiri. Penjelasannya sederhana, pencegahannya juga.

RRuyynn14 Mei 20265 menit baca

Analogi yang membuatnya klik

Bayangkan kartu akses gedung yang otomatis diverifikasi setiap kali kamu lewat pintu. CSRF adalah saat orang lain berjalan di belakangmu sambil membawa surat perintah, dan pintu membukakan karena kartumu terbaca, bukan karena suratnya sah.

Browser otomatis melampirkan cookie di setiap request ke domain asalnya. Server melihat cookie yang sah dan percaya itu keinginan pengguna. Padahal siapa yang memicu request bisa jadi halaman jahat di tab lain.

Kapan CSRF bisa terjadi

Tiga bahan: autentikasi via cookie yang otomatis terkirim, aksi yang mengubah sesuatu, dan request yang bisa dibuat tanpa token khusus. Aksi GET yang mengubah data juga termasuk, itulah kenapa aksi perubahan seharusnya tidak pernah lewat GET.

Perbaikan yang benar

SameSite=Lax atau Strict pada cookie menghentikan mayoritas skenario dengan sekali set. Token CSRF menambah lapisan kedua untuk form klasik. Untuk API modern dengan token di header, CSRF praktis tidak relevan karena browser tidak melampirkannya otomatis.

Verifikasi Origin header di sisi server adalah pemanis terakhir yang murah: kalau Origin ada dan tidak cocok, tolak.

Bagikan tulisan
XLinkedIn

Tulisan terkait