Anda pasti tidak ingin mengekspos server MongoDB Anda ke aplikasi Android secara langsung, terutama jika aplikasi akan memiliki peran pengguna yang memungkinkan akses tulis ke database. Siapa pun yang memiliki akses ke aplikasi Android berpotensi menemukan dan mengekstrak kredensial tersebut, dan jika aplikasi Android Anda dirancang untuk terhubung dari jaringan yang lebih luas, ini tidak perlu mengekspos server MongoDB Anda. Anda juga dapat membuka server MongoDB Anda untuk kemungkinan serangan penolakan layanan atau kueri jahat.
Dokumentasi MongoDB memiliki bagian terperinci tentang Konsep Keamanan termasuk eksposur jaringan dan keamanan. Praktik terbaik untuk penyebaran basis data apa pun adalah membatasi rentang alamat jaringan yang dapat terhubung secara langsung. Umumnya koneksi langsung harus dibatasi ke server aplikasi dan aplikasi pemantauan Anda, yang mungkin dihosting dalam infrastruktur jaringan yang sama.
Ya, pendekatan yang disarankan adalah dengan menulis antarmuka Anda sendiri yang menyediakan API dan kontrol autentikasi yang sesuai. Anda harus dapat menemukan kerangka kerja PHP dan/atau pustaka untuk meminimalkan jumlah kode khusus yang harus Anda tulis (mis. REST, JSON, Oauth).
Antarmuka yang Anda terapkan dapat:
- menempatkan beberapa batasan pada jenis kueri yang dapat dijalankan oleh pengguna akhir (hanya yang Anda sediakan, bukan API MongoDB lengkap)
- izinkan aplikasi untuk mengautentikasi dengan hak pengguna yang sesuai tanpa kredensial basis data yang disematkan di aplikasi Android
- tambahkan keamanan pengguna tambahan seperti OAuth berbasis token atau otentikasi Twitter/Facebook
- abstrak titik akhir yang terhubung dengan aplikasi Android (antarmuka web Anda) dari detail infrastruktur penerapan MongoDB Anda
- berpotensi menyertakan caching untuk kueri umum atau data sesi