📱 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

http
Authorization: Bearer abc123

✅ 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:

    http
    User-Agent: MyMobileApp/1.0

✅ 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