Pengenalan

Berkenalan dengan CSRF

Cross-Site Request Forgery salah satu jenis serangan yang masih sering ditemukan hingga saat ini.

Apa itu CSRF?

Cross-Site Request Forgery dikenal juga dengan nama one click attack atau session riding dan biasa disingkat menjadi CSRF atau XSRF, merupakan jenis ekploitasi berbahaya dari sebuah website di mana perintah yang tidak sah ditransmisikan dari pengguna yang dipercaya oleh aplikasi web.

Mudahnya, serangan CSRF ini menipu situs web dengan cara penyerang membuat request yang seolah-olah request tersebut berasal dari user yang dipercaya (korban).

Serangan bekerja melalui link atau script pada halaman web yang diakses oleh user. Link tersebut dapat berupa gambar yang terhubung ke website tertentu.

Jika browser victim menyimpan informasi otentikasi dalam sebuah cookie yang belum expire, maka dengan mengklik ke link tersebut akan menyebabkan website diakses menggunakan cookie victim yang melakukan klik. Dengan kata lain, penyerang menipu browser user untuk mengirimkan HTTP request ke website target.

Pengetahuan yang Harus Dimiliki

Ada 2 pengetahuan yang sangat penting menurut saya untuk melakukan CSRF ini, yaitu:

  1. Pengetahuan tentang HTTP request,

  2. Dan client-side scripting seperti JavaScript dan HTML.

Bagaimana Cara Mengatasi CSRF?

Untuk meminimalisir dampak dari celah keamanan CSRF, developer bisa melakukan beberapa pencegahan dibawah ini:

  • Website beralih dari metoda persistent authentication (menggunakan otentikasi dengan cookie atau HTTP) ke metoda transient authentication (menggunakan hidden field oleh setiap form).

  • Menyertakan token user-specific rahasia yang ditambahkan ke cookie.

  • Meskipun CSRF pada dasarnya adalah masalah dengan aplikasi web, user dapat membantu melindungi account-nya dengan logoff site sebelum mengunjungi yang lain atau membersihkan cookie browsernya pada akhir session browser.

  • Menggunakan SSL (Secure Socket Layer) and TLS (Transport Layer Security) encryption ketika berurusan dengan data yang sensitive.

  • Setting dan restrict security terkait HTTP Header, diantaranya Mengatur Content-Security-Policy, Menonaktifkan X-Powered-By, Mengatur Strict-Transport-Security, Mengatur X-XSS-Protection.

Last updated