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 atau Referer di server.

🌐 Jika kamu ingin aman dan tertib dalam akses API lintas domain:

  • Gunakan header CORS dengan bijak:

    http
    Access-Control-Allow-Origin: https://aplikasiku.com
  • 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