Bạn chắc chắn không muốn hiển thị trực tiếp (các) máy chủ MongoDB của bạn với ứng dụng Android, đặc biệt là nếu ứng dụng sẽ có vai trò người dùng cho phép ghi truy cập vào cơ sở dữ liệu. Bất kỳ ai có quyền truy cập vào ứng dụng Android đều có khả năng phát hiện và trích xuất các thông tin đăng nhập đó và nếu ứng dụng Android của bạn được thiết kế để kết nối từ một mạng rộng hơn, điều này sẽ làm lộ máy chủ MongoDB của bạn một cách không cần thiết. Bạn cũng có thể đang mở máy chủ MongoDB của mình trước các cuộc tấn công từ chối dịch vụ hoặc các truy vấn giả mạo.
Tài liệu MongoDB có một phần chi tiết về Khái niệm bảo mật bao gồm tiếp xúc và bảo mật mạng. Thực tiễn tốt nhất cho bất kỳ triển khai cơ sở dữ liệu nào là giới hạn phạm vi địa chỉ mạng có thể kết nối trực tiếp. Nói chung, các kết nối trực tiếp nên được giới hạn ở các máy chủ ứng dụng của bạn và các ứng dụng giám sát, những ứng dụng này có thể được lưu trữ trong cùng một cơ sở hạ tầng mạng.
Có, một cách tiếp cận được đề xuất sẽ là viết giao diện của riêng bạn, cung cấp một API phù hợp và các điều khiển xác thực. Bạn sẽ có thể tìm thấy một khuôn khổ PHP và / hoặc các thư viện để giảm thiểu số lượng mã tùy chỉnh bạn phải viết (ví dụ:REST, JSON, Oauth).
Giao diện bạn triển khai có thể:
- đặt một số ràng buộc đối với loại truy vấn mà người dùng cuối có thể chạy (chỉ những gì bạn cung cấp, thay vì API MongoDB đầy đủ)
- cho phép ứng dụng xác thực bằng các đặc quyền của người dùng thích hợp mà không cần nhúng thông tin đăng nhập cơ sở dữ liệu vào ứng dụng Android
- thêm bảo mật người dùng bổ sung, chẳng hạn như OAuth dựa trên mã thông báo hoặc xác thực Twitter / Facebook
- tóm tắt điểm cuối mà ứng dụng Android kết nối với (giao diện web của bạn) từ chi tiết cơ sở hạ tầng của việc triển khai MongoDB của bạn
- có khả năng bao gồm bộ nhớ đệm cho các truy vấn phổ biến hoặc dữ liệu phiên