Skip to main content

🛡️ Memahami CORS dan CSRF dalam Pengembangan Web

Dalam dunia pengembangan web modern, keamanan adalah hal yang sangat penting. Dua konsep yang sering muncul ketika membahas keamanan komunikasi antara browser dan server adalah CORS (Cross-Origin Resource Sharing) dan CSRF (Cross-Site Request Forgery). Walaupun keduanya terdengar mirip, mereka memiliki fungsi dan konteks yang berbeda. Mari kita bahas satu per satu.

🌐 Apa itu CORS?

CORS (Cross-Origin Resource Sharing) adalah mekanisme keamanan yang diterapkan oleh browser untuk mengatur permintaan antar domain. Secara default, browser akan membatasi permintaan HTTP dari satu origin (domain) ke origin lain untuk mencegah akses ilegal.

📌 Contoh Kasus:

  • Aplikasi frontend kamu berjalan di http://localhost:3000
  • API backend kamu berjalan di http://localhost:5000
  • Ketika frontend mencoba memanggil API backend, browser akan memblokir permintaan tersebut kecuali backend memberikan izin melalui header CORS.

✅ Cara Mengizinkan CORS:

Server backend perlu mengembalikan header seperti:

Access-Control-Allow-Origin: http://localhost:3000

Atau, untuk lebih fleksibel (hati-hati dengan ini!):

Access-Control-Allow-Origin: *

⚙️ Contoh Konfigurasi (misalnya di .NET):

builder.Services.AddCors();

app.UseCors(policy =>
    policy.WithOrigins("http://localhost:3000")
          .AllowAnyHeader()
          .AllowAnyMethod());

🔓 Apa itu CSRF?

CSRF (Cross-Site Request Forgery) adalah jenis serangan di mana penyerang menipu browser korban agar mengirim permintaan tidak sah ke server tempat korban sedang login.

📌 Contoh Kasus:

  1. Kamu login di https://bankku.com
  2. Tanpa logout, kamu mengunjungi situs palsu https://jebakan.com
  3. Situs itu menjalankan script tersembunyi seperti:
<img src="https://bankku.com/transfer?to=akunPenyerang&amount=1000000" />

Karena kamu masih login, browser akan otomatis menyertakan cookie session milikmu.

Permintaan pun berhasil, dan uangmu bisa berpindah tangan tanpa kamu sadari.

✅ Cara Mencegah CSRF:

  • Token CSRF: Server mengirim token unik yang harus dikirim balik oleh klien saat mengirim request.
  • SameSite Cookies: Mengatur cookie agar tidak dikirim dalam permintaan lintas situs.
  • Validasi Origin/Referer: Server mengecek dari mana asal request.

🔐 Contoh Token CSRF:

<form method="POST">
  <input type="hidden" name="csrf_token" value="abc123">
</form>

🧠 Perbedaan Utama: CORS vs CSRF

Aspek CORS CSRF
Tujuan Melindungi resource server dari akses lintas domain tanpa izin Melindungi aksi pengguna dari permintaan palsu
Konteks Browser membatasi request ke domain lain Penyerang mengeksploitasi session yang aktif
Penanganan Konfigurasi header di server Token CSRF, SameSite cookie, validasi Origin
Contoh Masalah API tidak bisa diakses dari frontend lain Transfer uang tanpa sepengetahuan pengguna

📌 Kesimpulan

  • CORS adalah perlindungan sisi browser agar aplikasi hanya bisa mengakses data dari sumber yang diizinkan.
  • CSRF adalah serangan terhadap user yang sedang login ke situs tertentu.
  • Keduanya penting untuk dipahami dan diterapkan dalam setiap aplikasi web, terutama saat menghubungkan frontend dan backend yang berbeda origin.

Comments

Popular posts from this blog

🛠 Menambahkan Ekstensi ke VSCode untuk Pengembangan Aplikasi Berbasis .NET (C#) yang Lebih Optimal

🛠 Menambahkan Ekstensi ke VSCode untuk Pengembangan Aplikasi Berbasis .NET (C#) yang Lebih Optimal Kali ini, kita akan melihat bagaimana menambahkan beberapa ekstensi ke VSCode agar fungsinya lebih mirip dengan Integrated Developer Environment (IDE) seperti Visual Studio versi lengkap. Dengan menambahkan ekstensi, kita dapat meningkatkan kemampuan VSCode agar lebih nyaman digunakan dalam pengembangan. 💡 Kenapa Menggunakan VSCode? Gratis – Tidak perlu biaya untuk menggunakannya. Cross-Platform – Bisa digunakan di Windows, Mac, dan Linux dengan pengalaman yang sama. Populer – Lebih dari 70% pengembang menggunakan VSCode secara teratur. Karena itu, VSCode adalah pilihan yang baik untuk digunakan dalam pengembangan. ⚙️ Mengaktifkan Auto Save Untuk memastikan perubahan kode langsung tersimpan, saya sarankan untuk mengaktifkan fitur Auto Save . 📌 Caranya: Klik "File" di menu utama. Pilih "Auto Save" untuk me...

Memulai Proyek .NET SDK dengan menggunakan CLI (Command Line Interface)

Memulai Proyek .NET SDK dengan menggunakan CLI (Command Line Interface) Ketika kita membangun proyek menggunakan .NET SDK . Pastikan Anda telah menginstal SDK ini sebagai bagian dari pengaturan pengembang. Memeriksa Instalasi .NET SDK Untuk memastikan bahwa .NET SDK sudah terinstal dan tersedia, jalankan perintah berikut di terminal atau command prompt: dotnet --info Perintah ini akan menampilkan informasi tentang versi .NET SDK dan runtime yang telah terinstal. Menggunakan .NET SDK untuk Membuat Proyek .NET SDK menyediakan sejumlah template untuk membantu kita memulai proyek. Untuk melihat daftar template yang tersedia, gunakan perintah: dotnet new list Dalam kursus ini, kita akan membuat Web API , sehingga perintah yang digunakan adalah: dotnet new webapi Membuat Struktur Proyek Pastikan Anda bekerja di dalam folder pengguna , bukan folder sistem seperti System32 , agar proyek memiliki izin yang benar. ...