Pengertian CSRF
CSRF (Cross Site Request Forgery) merupakan sebuah serangan eksploitasi web yang membuat pengguna tanpa sadar mengirim sebuah permintaan atau request ke website melalui website yang sedang digunakan saat itu.
Jenis Serangan CSRF
Serangan CSRF dibagi menjadi dua berdasarkan media pendistribusiannya, yaitu stored dan reflected. Berikut masing-masing penjelasannya.
Stored
Jenis Cross Site Request Forgery yang pertama adalah stored. Jenis ini menggunakan aplikasi website sebagai media untuk mendistribusikan exploit URL tersebut. Serangan stored kemungkinan besar berhasil karena ketika di dalam situs, pengguna dalam posisi login dan tergolong authentic user.
Sehingga ketika mengirim permintaan, situs akan mengira jika itu memang request asli dari pengguna, padahal kamu hanya tidak sengaja mengklik URL-nya dan tidak tahu juga jika itu adalah sebuah exploit URL.
Jenis ini memiliki kelemahan yaitu dapat meninggalkan jejak atau riwayat yang jelas. Sehingga hal ini dapat ditelusuri lebih lanjut oleh pihak website yang sedang kamu gunakan.
Reflected
Jenis CSRF selanjutnya adalah reflected, jika pada jenis sebelumnya menggunakan media website sebagai distribusi, maka berbeda dengan jenis reflected yang menggunakan sistem di luar situs, misalnya seperti lewat email, kolom komentar pada postingan blog, message board, dan masih banyak yang lain.
Karena dilakukan di luar website, maka kemungkinan kegagalan serangan ini lebih besar. Sebab, kemungkinan besar pengguna tidak sedang dalam sistem website target saat itu. Bagi pelaku, jenis reflected dianggap lebih aman karena jejaknya dapat dihapus segera dan sulit untuk dilacak.
Cara Kerja CSRF
Setelah mengetahui dua jenis serangan CSRF, selanjutnya kenali juga seperti apa cara kerja dari Cross Site Request Forgery ini hingga bisa mengirim request tanpa pengguna minta. Berikut penjelasannya.
- Pertama, pengguna dan server akan mengkonfirmasi session ID dari halaman website yang sedang dikunjungi.
- Kemudian pelaku akan mengirimkan phising berbentuk pesan atau teks untuk meyakinkan pengguna agar mengklik exploit URL yang dicantumkan di sana.
- Setelah itu, pada exploit URL sebelumnya sudah diinjeksi dengan memasukan perintah sesuai tujuan penyerang. Misalnya perintah untuk mengganti kata sandi.
- Apabila URL diklik, kemudian password akan berubah secara otomatis dan ketika pengguna logout dari situs tersebut, maka tidak bisa login lagi. Karena sandi sudah diganti oleh pelaku.
Itulah cara kerja CSRF secara singkat, namun agar kejahatan CSRF dapat berjalan dengan mulus, maka oknum biasanya memperhatikan hal-hal berikut:
- Aplikasi website yang ditarget harus menggunakan session cookies agar malicious request terlihat seperti authentic request atau permintaan asli.
- CSRF bisa berhasil apabila pengguna sedang aktif pada situs yang ditarget.
- Pelaku harus menemukan nilai parameter HTTP yang tepat agar request tidak ditolak oleh website tersebut.
Cara Mencegah CSRF
Agar tidak mendapatkan serangan Cross Site Request Forgery maka perlu melakukan pencegahan, berikut ini beberapa cara mencegah CSRF yang bisa kamu terapkan.
Secret Validation Token
Cara yang pertama adalah menggunakan secret validation token. Token ini bekerja dengan cara mengirimkan informasi tambahan setiap ada pengiriman data ke server. Informasi tersebut berisi nilai acak yang sudah diatur oleh aplikasi web tersebut.
Token tersebut berfungsi untuk menentukan apakah permintaan yang masuk berasal dari pengguna yang memiliki otoritas atau bukan. Nilai ini bersifat rahasia dan sulit ditebak oleh pihak yang tidak memiliki akses pengguna.
Namun, kekurangan dari cara ini adalah tokennya akan selalu sama. Nilainya akan sama ketika proses validasi yang pertama.
Random Validation Token
Pencegahan CSRF kedua adalah dengan random validation token, cara kerjanya sama dengan sebelumnya. Hanya saja seperti namanya nila pada token ini lebih bersifat dinamis.
Semua proses pengiriman data memiliki nilai token yang berbeda. Sehingga ketika pengiriman selesai dilakukan, token tersebut akan otomatis terhapus pada session.
Sehingga apabila pengguna akan mengirimkan request data lagi, maka sistem aplikasi website akan membentuk nilai token yang baru. Itulah mengapa dikatakan token yang dinamis.
Sumber: www.dewaweb.com
![]()

