Di dunia keamanan web, dua istilah ini sering muncul: CSRF dan CORS. Keduanya tampak mirip—sama-sama punya huruf “C”, sama-sama urusannya dengan permintaan lintas situs, dan sering bikin bingung developer.
Tapi tahukah kamu? Meski mirip, CSRF dan CORS punya peran yang sangat berbeda. Yuk, kita bahas satu per satu, lalu lihat bagaimana keduanya bertemu di satu medan pertempuran yang sama: keamanan browser.
🧨 Apa Itu CSRF?
CSRF (Cross-Site Request Forgery) adalah serangan yang membuat browser korban mengirim permintaan ke situs lain secara otomatis, tanpa sepengetahuan pengguna.
Contoh:
Kamu sedang login ke situs dompet digital (misalnya: dompetku.com
). Lalu kamu klik link jebakan dari situs lain. Tanpa kamu tahu, browser mengirim form untuk transfer uang, dan cookie login kamu ikut terkirim. Hasilnya? Uang kamu bisa raib.
Masalah utama CSRF: browser otomatis mengirim cookie dalam permintaan lintas situs.
🌐 Apa Itu CORS?
CORS (Cross-Origin Resource Sharing) adalah aturan keamanan browser yang mengatur siapa yang boleh ambil data dari server lain lewat JavaScript.
Contoh:
Situs aplikasiku.com
mencoba ambil data dari api.bank.com
lewat JavaScript (fetch()
). Tapi kalau api.bank.com
tidak mengizinkan domain luar, maka permintaan akan ditolak oleh browser.
CORS bukan perlindungan dari CSRF, tapi dari akses data lewat JavaScript dari situs lain.
🥊 CSRF vs. CORS: Apa Bedanya?
Aspek | CSRF | CORS |
---|---|---|
Singkatan | Cross-Site Request Forgery | Cross-Origin Resource Sharing |
Terjadi karena… | Browser otomatis kirim cookie | Browser blok JavaScript lintas domain |
Menyerang dengan cara… | Kirim permintaan dari situs luar | Minta akses data dari situs lain |
Perlindungan utama | CSRF Token, SameSite Cookie | Header CORS dari server |
Siapa yang cegah? | Server harus validasi permintaan | Browser yang memblokir akses |
Contoh serangan | Kirim form palsu transfer uang | Ambil data user lewat JavaScript |
🤯 Kenapa Sering Disamakan?
Banyak orang mengira CORS bisa mencegah CSRF, padahal tidak. Kenapa?
Karena:
-
CORS mengatur JavaScript lintas domain, bukan form otomatis.
-
Serangan CSRF tidak butuh JavaScript. Cukup pakai
<form>
atau<img src="...">
, dan browser akan kirim cookie ke target situs.
Jadi, walau CORS aktif, CSRF tetap bisa terjadi kalau kamu tidak pakai perlindungan khusus seperti CSRF Token atau SameSite Cookie.
✅ Jadi Gimana Solusinya?
🔒 Jika kamu ingin aman dari CSRF:
-
Tambahkan CSRF Token di setiap permintaan POST/PUT/DELETE.
-
Gunakan SameSite=Strict di cookie login.
-
Validasi
Origin
atauReferer
di server.
🌐 Jika kamu ingin aman dan tertib dalam akses API lintas domain:
-
Gunakan header CORS dengan bijak:
-
Jangan pernah pakai
*
di API yang menyimpan data pribadi.
🧾 Kesimpulan
CSRF dan CORS memang terdengar mirip, tapi mereka bertugas di medan yang berbeda:
-
CSRF adalah serangan.
-
CORS adalah aturan browser.
Jadi jangan salah kaprah:
CORS tidak bisa mencegah CSRF, dan CSRF bisa terjadi meskipun CORS sudah diatur.
Keduanya penting, dan keduanya harus dipahami oleh setiap developer yang membangun aplikasi web yang aman.
Penulias : Muhammad Aditya Alkhawarizmi
Nim : 23156201023
jurusan : Sistem Komputer