Pendahuluan
Di dunia keamanan web, banyak istilah teknis yang terdengar mirip, padahal memiliki makna dan dampak yang sangat berbeda. Salah satu contohnya adalah CSRF dan SSRF. Keduanya sama-sama mengandung kata “Request Forgery” dan sering membuat bingung, terutama bagi yang baru belajar keamanan web.
Padahal, CSRF (Cross-Site Request Forgery) dan SSRF (Server-Side Request Forgery) memiliki cara kerja, target, dan dampak yang sangat berbeda. Artikel ini akan membantu kamu memahami perbedaan keduanya dengan cara yang sederhana.
Apa Itu CSRF (Cross-Site Request Forgery)?
CSRF adalah serangan yang mengecoh pengguna yang sedang login ke sebuah website agar tanpa sadar melakukan aksi tertentu, seperti mengubah password, mengirim uang, atau menghapus data.
Bagaimana Cara Kerjanya?
Misalnya kamu sedang login ke akun bank. Lalu kamu membuka website lain yang ternyata dibuat oleh penyerang. Di website itu, penyerang menyisipkan kode yang akan mengirimkan permintaan ke situs bank kamu, misalnya:
<img src="https://bank.com/transfer?to=hacker&amount=1000">
Jika situs bank tidak memeriksa asal permintaan, maka uangmu bisa saja ditransfer ke penyerang—padahal kamu tidak pernah menekan tombol apapun!
Apa Itu SSRF (Server-Side Request Forgery)?
Berbeda dengan CSRF yang menipu pengguna, SSRF menipu server.
Penyerang memanfaatkan celah di server agar server tersebut mengirim permintaan ke alamat yang tidak seharusnya, termasuk ke sistem internal yang seharusnya tidak bisa diakses dari luar.
Contoh Sederhana:
Sebuah website menyediakan fitur untuk mengambil gambar dari URL yang dikirim pengguna. Penyerang lalu mengirimkan URL seperti:
http://127.0.0.1/admin
Server kemudian tanpa sadar mengakses alamat lokal (localhost) dan membuka halaman admin internal. Jika tidak ada perlindungan, penyerang bisa membaca informasi rahasia atau bahkan mengambil alih server.
Perbandingan CSRF vs SSRF
Aspek | CSRF | SSRF |
---|---|---|
Target | Pengguna (user) | Server |
Pelaku | Korban yang sedang login | Server yang mengirim permintaan |
Media Serangan | Browser pengguna | Aplikasi web/server |
Contoh Umum | Transfer uang, ubah password | Akses metadata server, intranet, admin panel |
Tujuan | Mengecoh pengguna untuk melakukan aksi | Menyalahgunakan server untuk akses tersembunyi |
Mengapa Banyak yang Bingung?
Kedua istilah ini terdengar mirip karena sama-sama mengandung kata “Request Forgery”, yaitu pemalsuan permintaan. Namun, yang dipalsukan dan siapa yang tertipu sangat berbeda:
- CSRF → menipu pengguna
- SSRF → menipu server
Mengetahui perbedaan ini sangat penting untuk menentukan jenis perlindungan yang harus digunakan.
Cara Mencegah Kedua Serangan Ini
Mencegah CSRF:
- Gunakan CSRF Token pada setiap form.
- Periksa Origin atau Referer header untuk memastikan permintaan datang dari sumber sah.
- Gunakan cookie dengan atribut SameSite agar tidak dikirim dari domain lain
Mencegah SSRF:
- Validasi input URL secara ketat.
- Whitelist domain yang boleh diakses.
- Blokir akses ke alamat internal seperti
127.0.0.1
,169.254.169.254
(metadata AWS), dan IP privat. - Gunakan firewall atau proxy dengan aturan khusus untuk request keluar.
Studi Kasus Nyata
- CSRF: Facebook pernah mengalami bug yang memungkinkan pengguna menghapus foto hanya dengan membuka tautan tertentu.
- SSRF: Pada 2019, Capital One diretas melalui SSRF. Penyerang berhasil mengakses metadata layanan cloud dan mengambil data pribadi jutaan orang.
Kesimpulan
Meskipun terdengar mirip, SSRF dan CSRF adalah dua jenis serangan yang sangat berbeda. CSRF menyerang pengguna, sementara SSRF menyasar server.
Mengetahui perbedaan ini bukan hanya penting bagi developer, tetapi juga bagi siapa saja yang peduli dengan keamanan data. Dengan memahami cara kerja dan menerapkan perlindungan yang tepat, kita bisa membuat aplikasi web jauh lebih aman dari kedua ancaman ini.