Cross Site Request Forgery (CSRF) adalah serangan pada website yang dieksekusi atas wewenang korban, tanpa dikehendakinya.

Contoh serangan Cross Site Request Forgery (CSRF) katakan lah terdapat sebuah website transaksi pulsa eletrik, Si A merupakan salah satu membernya, dan memiliki deposit yang cukup untuk bertransaksi. untuk melakukan transaksi, website harus menggunakan pengguna login terlebih dahulu, lalu transaksi terjadi dengan mengakses link http://domain/transaksi.php?no-hpxxxxxxnilai-pulsa=100000, isi dari field no hp adalah no handphone tujuan yang ingin diisi ulang dengan pulsa senilai Rp 100.000 . tentunya developer web telah memproteksi link ini agar hanya dapat diakses oleh member yang telah berhasil login.

Cross Site Request Forgery (CSRF)

Cross Site Request Forgery (CSRF)

Si B merupakan tokoh antagonis, ia mengetahui cara kerja website tersebut, ia juga menemukan bahwa website itu memiliki fitur yang menyimpan otentifikasi member dalam jangka waktu tertentu (menggunakan session/cookies). selama masih valid pengguna dapat masuk tanpa perlu login dan memasukan password lagi. Anda tentu mengetahui banyak website memberikan pilihan”remember me” atau “keep me logged in” bagi pengguna bukan?

Si B (Penyerang) lalu mengirimkan email kepada si A (korban) berisi link  http://domain/transaksi.php?no-hpxxxxxxnilai-pulsa=100000, dimana field no_hp berisi nomor handphone si B. ini disamarkan dengan teknik tertentu dan seolah-olah merupakan link yang menarik. apa yang terjadi jika si A lengah mengklik link tersebut? jika cookie valid/tidak ekpired, transaksi tersebut akan terisi atas otoritas si A (sebagai pihak login) hasilnya si B menikmati pulsa gratis senilai Rp 100.000.

Cross Site Request Forgery  (SCRF) dan Cross Site Scripting (XSS) 

Dari Contoh diatas SCRF  mengirimkan HTTP request kesebuah website tanpa sepengetahuan atau keinginan korban, dengan memanfaatkan session yang valid. Serangan ini disebut dengan Session Riding, atau one-cklik-attack. 

Perbedaan Cross Site Request Forgery  (SCRF) dan Cross Site Scripting (XSS) yang signifikan adalah :

Cross Site Scripting XSS melakukan injeksi script pada sisi client dalam penyerangannya. contoh seperti script :

<a href=”javascript: alert (document. cookies); “> isi cookies</a>

kode tersebut akan menampilkan sebuah link, yang jika diklik akan menampilkan isi cookies, selain disisipkan pada link, XSS dapat juga disisipkan pada field-field input (text input, text area) yang terdapat pada guesbook, forum dan sebagainya. Dengan melakukan validasi input yang tepat pada sisi server. Maka XSS dapat dicegah. Penanggulangan XSS pada sisi Client denga men-disable javascript pada browser. Tetapi Konsekuensinya, script lain yang berguna dan tidak berbahaya menjadi tidak dapat dijalankan juga.

Hal ini berbeda dengan Cross Site Request Forgery  (SCRF), yang alih-alih menginjeksi. Ia justru memanfaatkan fungsi dari aplikasi web itu sendiri. contoh pada kode HTML :

<a href=”http://xyz.com/messaages.php?empty=Trash&folder=Trash “> klik sini </a>

Pada kode tersebut kita asumsikan xyz.com adalah sebuah website jejaring sosial ataupun webmail yang memiliki mailbox dengan folder-folder inbox, sent, trash dan seterusnya. Jika link tersebut diklik dan pengguna memiliki session account xyz.com akan dikosongkan(empty).

Jika contoh kode diatas membutuhkan interaksi pengguna berupa klik  tombol mouse agar link diarahkan ke tujuan, maka kode berikut akan langsung menjalankan link tersebut, bahkan halaman website xyz.con tidak tampil pada browser.

<img src=”http:// xyz.com/messaages.php?empty=Trash&folder=Trash “Width=”10” height=”10” border=”1”>

untuk mengelabui pengguna dengan link-link yang bertujuan jahat, SCRF maupun XSS sering kali menggunakan social engineering.  Ancaman akan semakin bervariasi jika berkombinasikan dengan bentuk serangan lain seperti XSS atau SQL injection.