📱 Protecting Mobile APIs from CSRF: Misi Mustahil?
CSRF (Cross-Site Request Forgery) biasanya dibahas dalam konteks website. Tapi, bagaimana dengan aplikasi mobile?
Apakah API di aplikasi mobile juga bisa kena CSRF?
Kalau iya, bagaimana cara melindunginya?
Apakah ini benar-benar jadi misi mustahil?
Yuk, kita bahas!
🤔 Apa Itu CSRF Lagi?
CSRF adalah jenis serangan di mana browser korban mengirim permintaan ke server tanpa sepengetahuan pengguna.
Contohnya:
-
Kamu masih login ke situs bank
-
Kamu klik link jebakan
-
Tanpa kamu sadari, browser kamu mengirim permintaan “transfer uang”
-
Karena ada cookie login, permintaan dianggap sah
💥 Serangan berhasil, padahal kamu nggak pernah klik tombol transfer!
Secara umum, CSRF terjadi di browser, karena:
-
Browser otomatis kirim cookie
-
Browser jalanin script HTML yang dimuat dari mana saja
Sedangkan aplikasi mobile (Android/iOS):
-
Tidak punya browser internal seperti web
-
Tidak otomatis kirim cookie dari domain asing
-
Biasanya pakai token (seperti JWT) di header, bukan cookie
👉 Jadi, secara teori:
Aplikasi mobile lebih aman dari CSRF. Tapi bukan berarti kebal total.
⚠️ Kapan Mobile API Bisa Rentan?
Ada beberapa kondisi berbahaya yang bisa membuka celah CSRF:
1. Aplikasi Mobile Menggunakan WebView
Jika aplikasi membuka halaman web di dalam WebView (semacam browser mini), maka:
-
Cookie bisa tersimpan
-
WebView bisa disusupi halaman jahat
-
Potensi CSRF muncul kembali
2. Aplikasi Gunakan Cookie untuk Login
Beberapa aplikasi menggunakan cookie untuk otentikasi, bukan token di header.
Jika cookie dikirim otomatis oleh WebView atau library tertentu, risiko CSRF tetap ada.
3. Aplikasi Terhubung ke Backend yang Juga Digunakan oleh Web
Jika backend (API) dipakai oleh:
-
Aplikasi mobile, dan
-
Website
…dan backend tidak membedakan asal permintaan, maka penyerang bisa menyasar API lewat website, dengan serangan CSRF biasa.
🛡️ Cara Melindungi Mobile API dari CSRF
✅ 1. Gunakan Token, Bukan Cookie
-
Gunakan JWT atau token sesi yang dikirim lewat Authorization header
-
Jangan andalkan cookie yang dikirim otomatis
✅ 2. Hindari WebView untuk Halaman Login Sensitif
-
Kalau terpaksa pakai WebView, pastikan tidak menyimpan cookie
-
Jangan jalankan script sembarangan di WebView
✅ 3. Validasi Origin
atau Referer
di Server
-
Pastikan semua permintaan ke API datang dari sumber yang sah
✅ 4. Pisahkan Endpoint untuk Mobile dan Web
-
Gunakan jalur atau header khusus agar server tahu permintaan dari mobile
-
Contoh:
✅ 5. Gunakan CSRF Token Jika Backend Dipakai oleh Web
-
Jika satu API dipakai mobile & web, tetap wajib tambahkan CSRF token untuk permintaan dari web
🎯 Jadi, Apakah CSRF di Mobile Itu Misi Mustahil?
Tidak juga.
Justru lebih mudah dicegah—asal:
-
Tidak memakai cookie sembarangan
-
Menghindari WebView untuk data penting
-
Menggunakan token dengan benar
💡 Intinya: jangan bawa kebiasaan web ke mobile, terutama soal cara mengelola sesi/login.
🧾 Kesimpulan
Risiko Utama di Mobile | Solusi Praktis |
---|---|
Cookie dikirim otomatis | Gunakan token via header |
WebView menyimpan cookie | Hindari WebView untuk login |
Backend dipakai web & mobile | Tambahkan CSRF Token untuk web |
Tidak validasi asal request | Validasi Origin & pisahkan endpoint |
Dengan cara-cara di atas, CSRF di mobile bisa dicegah, dan misi “melindungi API” bukan lagi hal yang mustahil 🚀
Penulias : Muhammad Aditya Alkhawarizmi
Nim : 23156201023
jurusan : Sistem Komputer