Cross-Site Request Forgery (CSRF)
Pelajari cara serangan CSRF memalsukan permintaan terautentikasi dan cara token CSRF serta cookie SameSite melindunginya
Cross-Site Request Forgery (CSRF) adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Apa itu CSRF?
Pemalsuan Permintaan Lintas Situs (CSRF) menipu peramban pengguna yang telah terautentikasi agar melakukan permintaan tanpa wewenang ke aplikasi web. Peramban secara otomatis mengirimkan kuki bersama permintaan, sehingga peladen tidak dapat membedakan permintaan sah dari permintaan palsu tanpa langkah tambahan.
Cara Kerja CSRF
Skenario:
- Korban masuk ke bank.com (kuki sesi di peramban)
- Korban mengunjungi halaman penyerang dengan:
<img src="https://bank.com/transfer?to=attacker&amount=1000"> - Peramban mengirimkan permintaan GET dengan kuki bank.com terlampir
- Bank memproses pemindahan dana
CSRF dengan Permintaan POST
CSRF POST memerlukan formulir:
<form action="https://bank.com/transfer" method="POST" id="f">
<input name="to" value="attacker">
<input name="amount" value="1000">
</form>
<script>document.getElementById("f").submit()</script>Token CSRF
Pertahanan utama adalah token CSRF: nilai acak, rahasia, dan spesifik per sesi (atau per permintaan) yang disematkan dalam formulir. Peladen memvalidasi token pada setiap permintaan yang mengubah keadaan. Penyerang dari domain lain tidak dapat membaca token tersebut (kebijakan asal yang sama).
Atribut Kuki SameSite
SameSite=Strict: kuki tidak pernah dikirim bersama permintaan lintas situs. SameSite=Lax: kuki dikirim bersama navigasi tingkat atas yang aman (tautan), tetapi tidak bersama POST dari situs lain. Peramban modern secara default menggunakan Lax, sehingga secara signifikan mengurangi risiko CSRF.
Pola Pengiriman Kuki Ganda
Alternatif untuk penyimpanan token di sisi peladen: tetapkan kuki CSRF acak dan wajibkan kuki tersebut juga dikirim sebagai parameter permintaan. Penyerang tidak dapat membaca kuki tersebut (asal yang sama), sehingga tidak dapat mencocokkannya dalam data formulir.
Tajuk Permintaan Khusus
Untuk permintaan AJAX, mewajibkan tajuk khusus (misalnya, X-Requested-With: XMLHttpRequest) memberikan perlindungan CSRF karena peramban memblokir skrip lintas asal agar tidak menetapkan tajuk sembarang (CORS memberlakukan hal ini).
Saat Token CSRF Tidak Cukup
Token CSRF gagal jika:
- Ada XSS—penyerang dapat membaca token melalui JavaScript
- Token bocor di URL (tajuk Referer)
- Token dapat diprediksi atau digunakan kembali
- CORS salah dikonfigurasi sehingga mengizinkan asal penyerang
Pengujian CSRF
Langkah pengujian:
- Identifikasi permintaan yang mengubah keadaan (POST, PUT, DELETE)
- Hapus atau ubah token CSRF lalu kirim ulang
- Buat pengiriman formulir lintas asal dan periksa apakah berhasil
- Verifikasi atribut SameSite pada kuki sesi
CSRF dalam API
REST API yang menggunakan JSON sering kali tidak rentan terhadap CSRF jika:
- Mewajibkan
Content-Type: application/json(formulir HTML tidak dapat menetapkan ini) - Menggunakan autentikasi berbasis token (tajuk Authorization, bukan kuki)
Namun, API yang menerima kuki tetap harus menerapkan perlindungan CSRF.
Situasi CSRF Modern
Dengan SameSite=Lax sebagai bawaan di Chrome, Firefox, dan Safari, banyak serangan CSRF tradisional diblokir. Namun, serangan subdomain dan pola navigasi tertentu masih dapat melewati Lax. Gabungkan SameSite dengan token CSRF untuk pertahanan yang kuat.
Pemeriksaan Singkat: CSRF
Apa pertahanan utama terhadap serangan CSRF dalam aplikasi web?
Ringkasan Pelajaran
CSRF mengeksploitasi pengiriman otomatis kuki oleh peramban untuk memalsukan permintaan terautentikasi dari situs berbahaya. Pertahanan utama: token CSRF yang divalidasi di sisi peladen. Pertahanan sekunder: atribut kuki SameSite=Strict/Lax. API yang menggunakan autentikasi token dalam tajuk (bukan kuki) secara alami tahan terhadap CSRF. Gabungkan beberapa pertahanan; XSS dapat melewati token CSRF jika ada.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Cross-Site Request Forgery (CSRF)” gratis?
Ya — teks lengkap “Cross-Site Request Forgery (CSRF)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Cross-Site Request Forgery (CSRF)”?
Pelajari cara serangan CSRF memalsukan permintaan terautentikasi dan cara token CSRF serta cookie SameSite melindunginya Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?
Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Cross-Site Request Forgery (CSRF)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?
Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Injeksi SQL: Cara dan Alasan Kerjanya
- Cross-Site Scripting (XSS)
- Cross-Site Request Forgery (CSRF)
- Kesalahan Konfigurasi Keamanan dan Layanan yang Terbuka