Review Privasi Push Notification pada Aplikasi Mobile
Payload push melewati batas tampilan aplikasi. Alert dapat muncul pada ponsel terkunci, jam tangan, layar mobil, riwayat notifikasi, perangkat yang dicerminkan, backup, atau konsol provider. Perlakukan judul, isi, subtitle, label tindakan, URL lampiran, custom data, suara, dan deep link sebagai permukaan kebocoran terpisah. Enkripsi saat transit tidak membuat konten yang tampil menjadi privat dari orang yang memegang perangkat.
Apple UserNotifications mendukung alert, suara, badge, kategori, tindakan, notifikasi lokal, serta notifikasi remote melalui APNs. Channel notifikasi Android memberi pengguna kontrol perilaku per kategori. Desain produk harus menghormati kontrol itu: nama channel dan kategori juga tidak boleh membocorkan konteks sensitif.
Inventaris payload dulu
Inventaris semua template, termasuk pesan error dan pesan pengujian. Catat asal data, penerima, permukaan render, kebijakan lock screen, dan owner. Jangan menerima alasan “hanya mengirim ID” tanpa memeriksa apakah ID itu muncul di log, URL, analytics, atau deep link.
| Template | Teks terlihat minimum | Aturan payload | Owner | Kriteria lulus |
|---|---|---|---|---|
| Pesan aman baru | “Anda memiliki pesan baru” | hanya referensi pesan opaque | owner messaging | tanpa pengirim, preview, atau nama akun di lock screen |
| Kejadian pembayaran | “Tindakan diperlukan di aplikasi” | tanpa nominal, merchant, atau OTP | owner pembayaran | tap meminta sesi aktif lalu membuka record terverifikasi |
| Peringatan keamanan | “Tinjau keamanan akun Anda” | tanpa perangkat, lokasi, IP, atau kode recovery | owner identitas | detail diambil setelah autentikasi |
Teks tampak harus tetap berguna tanpa membuka identitas, saldo, diagnosis, isi pesan, tujuan, atau rahasia keamanan. “Kode Anda 123456” dan “Transfer IDR 8.000.000 disetujui” langsung gagal. Payload juga tidak boleh membawa bearer token, password, session ID, tautan reset, atau URL lampiran yang dapat diakses siapa pun.
Rancang perilaku lock screen dengan sengaja
Pengaturan platform milik pengguna, bukan aplikasi. Aplikasi dapat meminta izin notifikasi dan memilih konten, tetapi tidak dapat menjanjikan semua perangkat menyembunyikan preview. Uji preview aktif/nonaktif, perangkat terkunci/tidak terkunci, serta permukaan terpasang yang didukung. Android menggunakan channel importance dan pengaturan pengguna; iOS memberi status otorisasi dan pengaturan notifikasi melalui UNUserNotificationCenter. Dokumentasikan perilaku yang diharapkan lalu buat default tetap aman bila setting berbeda.
Gunakan salinan netral sebagai default. Jika kebutuhan bisnis meminta detail, jadikan detail opt-in dengan peringatan jelas, owner yang menyetujui, dan retest setelah upgrade OS. Pilihan pengguna untuk menampilkan preview adalah izin menampilkan konten itu pada perangkatnya, bukan izin menambah data ke payload.
Notification service extension iOS dapat mengubah payload sebelum tampil, tetapi bukan tempat untuk mempercayai custom data tanpa verifikasi atau menyimpan credential. Tap notifikasi harus melewati otorisasi aplikasi normal. Selesaikan referensi opaque setelah memeriksa sesi, akses akun, state resource, dan freshness tindakan. Parameter deep link bukan bukti akses.
Prosedur uji nyata
- Tangkap request provider dan payload yang diterima aplikasi memakai data sintetis. Periksa semua field tampak dan custom.
- Kunci perangkat; uji banner, lock screen, riwayat, notifikasi berkelompok, wearable atau layar tercermin bila didukung. Bukti screenshot hanya memakai data sintetis.
- Tolak notifikasi, nonaktifkan preview, mute channel, cabut sesi, ganti akun, lalu tap notifikasi lama. Pastikan aplikasi tidak membuka record sensitif atau menjalankan tindakan.
- Uji referensi opaque kedaluwarsa, diubah, diputar ulang, dan lintas akun. Server wajib menolak semuanya.
- Review dashboard provider, delivery log, crash log, dan analytics untuk field payload yang tersalin.
Lulus bila payload memuat data opaque minimum, detail dilindungi diambil setelah otorisasi, tampilan lock screen netral, kontrol pengguna tetap berlaku, dan log operasional bebas konten sensitif. Gagal bila konten spesifik akun, OTP, data finansial, data kesehatan, rahasia, atau URL yang dapat dipakai ulang muncul di luar UI aplikasi terautentikasi.
Pengecualian, perbaikan, bukti
Owner fitur menyetujui tujuan; owner mobile menerapkan presentasi; owner backend memvalidasi referensi; owner privasi mereview minimisasi data. Bukti: inventaris template, capture uji teredaksi, konfigurasi channel/kategori, ID build, uji otorisasi server, dan catatan pengecualian.
Pengecualian perlu kebutuhan pengguna konkret, field yang terlihat, platform terdampak, owner risiko, masa berlaku, dan kontrol kompensasi. “Mendesak” bukan pengecualian. Perbaiki dengan mengganti teks netral, menghapus data custom payload, memakai referensi opaque berumur pendek, meminta autentikasi ulang, membatasi log, lalu mengulang uji perangkat terkunci. APNs dan provider lain berupaya mengirimkan notifikasi tetapi tidak menjamin pengiriman; notifikasi tidak boleh menjadi satu-satunya jalur tindakan keamanan penting.
Pengujian aplikasi mobile dapat memvalidasi permukaan tampilan dan otorisasi setelah interaksi notifikasi.
Kasus kerja: pengiriman saat layar terkunci
Buat akun uji berlabel netral lalu picu notifikasi status pembayaran ketika perangkat terkunci. Output yang diharapkan tidak memuat nama penerima, saldo, OTP, akhiran rekening, atau URL tindakan yang memberi akses tanpa membuka kembali state aplikasi terlindungi. Bandingkan teks lock screen, riwayat notifikasi, salinan perangkat wearable, dan perilaku pratinjau tangkapan layar. Cabut izin notifikasi, rotasi token perangkat, lalu kirim event sama. Sistem pengiriman harus mencatat hasil tidak terkirim atau disembunyikan tanpa mencoba token lama terus-menerus. Bukti penutupan mencakup ID event penyedia yang disamarkan, state pengaturan perangkat, dan screenshot tanpa nilai sensitif.
Uji tepi sebelum penutupan
Uji notifikasi tergabung, teks yang disalin, deep link sesudah sesi kedaluwarsa, serta notifikasi dibuka oleh profil pengguna perangkat lain. Deep link boleh mengenali event tetapi harus membangun ulang otorisasi di aplikasi. Uji ulang setelah perubahan lokalisasi karena template terjemahan sering menambah detail operasional. Tutup temuan hanya setelah owner produk menerima klasifikasi data yang tampil dan trace rilis membuktikan versi template disetujui.