Apa itu Pemalsuan Permintaan Lintas Situs?

CSRF atau Pemalsuan Permintaan Lintas Situs adalah kerentanan situs web di mana penyerang dapat menyebabkan tindakan terjadi di sesi korban di situs web lain. Salah satu hal yang membuat CSRF sangat berisiko adalah tidak memerlukan interaksi pengguna, yang diperlukan hanya korban untuk melihat halaman web dengan eksploitasi di dalamnya.

Tip: CSRF umumnya diucapkan huruf demi huruf atau sebagai “selancar laut”.

Bagaimana cara kerja serangan CSRF?

Serangan tersebut melibatkan penyerang yang membuat situs web yang memiliki metode membuat permintaan di situs web lain. Ini bisa memerlukan interaksi pengguna, seperti membuat mereka menekan tombol, tetapi bisa juga tanpa interaksi. Dalam JavaScript ada cara untuk menyebabkan suatu tindakan terjadi secara otomatis. Misalnya, gambar piksel nol kali nol tidak akan terlihat oleh pengguna tetapi dapat dikonfigurasi sehingga "src"-nya membuat permintaan ke situs web lain.

JavaScript adalah bahasa sisi klien, ini berarti kode JavaScript dijalankan di browser daripada di server web. Berkat fakta ini, komputer yang membuat permintaan CSRF sebenarnya adalah milik korban. Sayangnya, ini berarti bahwa permintaan dibuat dengan semua izin yang dimiliki pengguna. Setelah situs web penyerang menipu korban untuk membuat permintaan CSRF, permintaan tersebut pada dasarnya tidak dapat dibedakan dari pengguna yang membuat permintaan secara normal.

CSRF adalah contoh dari "serangan deputi yang membingungkan" terhadap browser web karena browser ditipu untuk menggunakan izinnya oleh penyerang tanpa hak istimewa tersebut. Izin ini adalah sesi Anda dan token otentikasi ke situs web target. Peramban Anda secara otomatis menyertakan detail ini dalam setiap permintaan yang dibuatnya.

Serangan CSRF agak rumit untuk diatur. Pertama-tama, situs web target harus memiliki formulir atau URL yang memiliki efek samping seperti menghapus akun Anda. Penyerang kemudian perlu membuat permintaan untuk melakukan tindakan yang diinginkan. Terakhir, penyerang perlu membuat korban memuat halaman web dengan eksploit di dalamnya saat mereka masuk ke situs web target.

Untuk mencegah masalah CSRF, hal terbaik yang dapat Anda lakukan adalah menyertakan token CSRF. Token CSRF adalah string yang dibuat secara acak yang ditetapkan sebagai cookie, nilainya harus disertakan dengan setiap respons di samping header permintaan yang menyertakan nilainya. Meskipun serangan CSRF dapat menyertakan cookie, tidak ada cara untuk dapat menentukan nilai token CSRF untuk mengatur header sehingga serangan akan ditolak.