Apa itu Serangan CSRF dan Cara Mencegahnya

Satulabs

apa itu serangan csrf

Serangan Cross-Site Request Forgery (CSRF) merupakan teknik serangan yang memanfaatkan sesi pengguna yang sedang login untuk menjalankan aksi tanpa izin. Serangan ini sering terjadi secara diam-diam dan dapat berdampak serius pada aplikasi web, mulai dari perubahan data hingga penyalahgunaan akun. Artikel ini membahas cara kerja CSRF dan langkah efektif untuk mencegahnya.

Apa itu Serangan CSRF?

Definisi Serangan CSRF

CSRF (Cross-Site Request Forgery) adalah serangan yang memaksa pengguna yang sedang terautentikasi untuk melakukan tindakan yang tidak mereka inginkan pada sebuah aplikasi web. Serangan ini memanfaatkan fakta bahwa browser akan mengirimkan cookie secara otomatis dalam setiap permintaan.

Dengan kata lain:

Penyerang menunggangi sesi login korban, lalu membuat permintaan palsu yang terlihat sah di mata server.

Serangan ini sering masuk kategori one-click attack atau session riding.

contoh analogi serangan CSRF
Contoh analogi serangan CSRF

Bagaimana Serangan CSRF Bekerja?

Untuk memahami CSRF, mari kita hubungkan mekanismenya dengan perilaku browser modern.

1. Pengguna login ke aplikasi web

Misalnya pengguna login ke bankanda.com. Browser menyimpan cookie sesi agar pengguna tetap dianggap login.

2. Pengguna mengunjungi halaman berbahaya

Penyerang membuat halaman HTML sederhana, misalnya:

<form action="https://localhost/changepassword" method="POST" target="_blank">
<input type="hidden" name="new_password" value="optimaise">
<input type="submit value="Change password CSRF">
</form>

Saat pengguna membuka halaman itu, browser otomatis siap mengirimkan permintaan POST ke server target.

3. Browser mengirim cookie secara otomatis

Inilah inti serangan CSRF: browser mengirim cookie tanpa perlu izin dari pengguna.

4. Server menganggap permintaan itu sah

Selama tidak ada mekanisme validasi CSRF, server akan berpikir bahwa permintaan berasal dari pengguna.

Inilah sebabnya CSRF bisa berdampak fatal meski hanya dari form HTML sederhana.

Dampak Serangan CSRF pada Aplikasi Web

Dampaknya tergantung endpoint yang dieksploitasi. Beberapa akibat serius antara lain:

  • Pengambilalihan akun
    Mengubah password tanpa izin, mengubah email, atau memodifikasi pengaturan keamanan.
  • Kerugian finansial
    Transfer dana otomatis, pembelian tanpa izin, perubahan metode pembayaran.
  • Perubahan konfigurasi sistem
    Mengubah role pengguna, memodifikasi data penting, atau menghapus informasi tertentu.
  • Akses berantai
    Jika endpoint admin yang kena, kerusakan akan jauh lebih besar.
implementasi token unik pada laravel atau aplikasi lainnya untuk mengatasi serangan csrf
Mencegah CSRF dengan implementasi token unik

Cara Mencegah Serangan CSRF

Implementasi CSRF Token

Ini adalah mekanisme pencegahan paling populer:

  • Setiap form atau permintaan dari sisi klien harus memiliki token unik.
  • Token ini harus diverifikasi oleh server.
  • Token tidak boleh bisa ditebak.
  • Token harus berbeda di setiap sesi.

Contoh alurnya:

  1. Server membuat token CSRF.
  2. Token ditanamkan di form atau header permintaan.
  3. Server mengecek apakah token valid.
  4. Permintaan diproses hanya jika token cocok.

Validasi dan Autentikasi Permintaan

Selain token, ada metode lainnya:

  • Double Submit Cookie
    Cookie berisi token, halaman mengekstraknya ke form atau header.
  • SameSite Cookie
    Menyetel cookie menjadi SameSite=Lax atau Strict, sehingga cookie tidak terkirim dari domain lain.
  • Cek Origin dan Referer
    Banyak developer mengabaikan ini padahal efektif untuk endpoint kritis.

Server harus memverifikasi:

  • Apakah Origin sesuai?
  • Apakah Referer masuk domain yang sama?
  • Apakah permintaan benar dari aplikasi sendiri?
implementasi CSRF Token untuk memblokir serangan CSRF
implementasi CSRF Token untuk memblokir serangan CSRF

Penggunaan Sekuritas Header HTTP

Header berikut sangat membantu:

  • SameSite Cookie
    Menghalangi cookie terkirim lintas domain.
  • Content-Security-Policy (CSP)
    Mengurangi risiko CSRF berbasis form dan script dirancang khusus.
  • X-Frame-Options / Frame-Ancestors
    Menghindari klikjacking—sering dikombinasikan dengan teknik CSRF.

Pengaturan sederhana seperti dibawah ini sudah sangat membantu mengatasi CSRF.

Set-Cookie: sessionid=abc123; HttpOnly; Secure; SameSite=Strict

Praktik Terbaik dalam Pengembangan Web

Dalam pengalaman implementasi keamanan aplikasi, beberapa praktik yang terbukti efektif

  1. Pisahkan endpoint GET dan POST
    GET hanya untuk membaca data.
    POST hanya untuk tindakan penting.
  2. Form dengan metode POST selalu memiliki token CSRF.
  3. Gunakan framework yang sudah menyediakan proteksi CSRF bawaan.
    • Laravel: CSRF Middleware
    • Django: CSRF Middleware
    • Express.js: csurf package
    • Spring Security: CSRF Protection
  4. Hindari endpoint sensitif terbuka tanpa adanya autentikasi.
  5. Review keamanan secara rutin dengan OWASP ZAP atau Burp Suite.

Studi Kasus dan Contoh CSRF

Account Takeover via CSRF in Google OAuth Binding by Rocky1696

temuan bug csrf pada google social connect
https://rocky1696.medium.com/account-takeover-via-csrf-in-google-oauth-binding-target-com-6ccc40403ce0
<html>
  <body>
    <h1>CSRF PoC: Google Social Connect</h1>
    <img src="https://www.target.com/account/social-connect/google?state=&code=4%token
  </body>
</html>

Selama proses penilaian keamanan di target.com, ditemukan kerentanan serius pada fitur Google Social Connect yang memungkinkan Account Takeover melalui serangan CSRF. Masalah ini terjadi karena endpoint /account/social-connect/google tidak memvalidasi parameter state dalam alur OAuth. Dengan menghapus nilai state, penyerang dapat membuat pengguna yang sedang login secara tidak sadar menghubungkan akun Google milik penyerang ke akun mereka. Begitu akun Google penyerang berhasil terhubung, penyerang dapat masuk melalui “Continue with Google” dan mendapatkan akses penuh ke akun korban tanpa perlu kata sandi, brute force, maupun verifikasi tambahan. Kerentanan ini membuka peluang pengambilalihan akun hanya dengan satu klik ketika korban mengunjungi halaman berbahaya yang berisi payload CSRF.

Kesalahan Umum dalam Pencegahan CSRF

Berdasarkan pengalaman membantu beberapa klien, kesalahan-kesalahan berikut paling sering saya temui:

  1. Mengandalkan captcha sebagai proteksi CSRF
    Captcha bukan solusi CSRF.
  2. Hanya memakai header Referer
    Referer bisa dihapus di beberapa kondisi.
  3. Tidak memberikan token ke endpoint AJAX
    AJAX juga rentan CSRF seperti form biasa.
  4. Token CSRF tidak diverifikasi dengan benar
    Ada yang generate token tapi tidak dicek di server.
  5. Token CSRF disimpan di cookie
    Kesalahan fatal karena cookie otomatis terkirim.

Pentingnya Memahami dan Mengatasi Serangan CSRF

Dalam cybersecurity, kita sering fokus ke serangan besar seperti SQL Injection atau XSS. Namun CSRF tidak boleh diremehkan karena:

  • Memanfaatkan kepercayaan server terhadap browser pengguna.
  • Eksploitasinya sangat mudah.
  • Dampaknya bisa langsung terasa.

Di era aplikasi web modern yang penuh fitur transaksi, CSRF bisa menyebabkan kerusakan finansial dan reputasi.

CSRF adalah serangan klasik namun masih sangat relevan dan berbahaya. Dengan memahami cara kerjanya, kita bisa membuat sistem yang lebih tangguh dan aman.

  • Gunakan CSRF token di semua endpoint yang memodifikasi data.
  • Aktifkan SameSite Cookie segera.
  • Cek origin dan referer untuk permintaan sensitif.
  • Terapkan best practice dari framework yang Anda gunakan.
  • Lakukan review keamanan secara rutin.

Keamanan aplikasi bukan soal menambahkan fitur rumit, tetapi memastikan setiap permintaan adalah permintaan yang sah. Dengan mitigasi yang tepat, serangan CSRF bisa dicegah dengan sangat efektif.

Sebagai penutup, jika Anda ingin bisnis Anda semakin dikenal dan tampil di halaman pertama Google, Jasa SEO Terpercaya Optimaise siap membantu Anda. Dengan strategi SEO yang telah terbukti efektif serta pengalaman dalam meningkatkan visibilitas berbagai bisnis di Malang, Bali, dan Jakarta, kami siap membawa website Anda ke level berikutnya. Jangan biarkan pesaing melangkah lebih dulu—optimalkan website Anda sekarang juga.

Dapatkan strategi SEO terbaik untuk pertumbuhan bisnis Anda dengan mengunjungi optimaise.co.id dan berlangganan layanan kami untuk hasil yang maksimal.

Lindungi website Anda dari ancaman siber.

Kami menyediakan proteksi komprehensif, mulai dari firewall, enkripsi data, hingga pemantauan keamanan 24/7 untuk memastikan bisnis Anda tetap aman dan terpercaya.

Mulai Sekarang
Optimaise