在Android应用程序中存储mongo db凭据

问题描述 投票:0回答:2

我开发了一个可直接与MongoDB交互以插入和获取数据的android应用。

我在应用程序中读取的android应用程序的配置文件中存储了凭据。

mongoDBConnection:
  credentials:
    username: "test"
    password: "test"

  database: "admin"
  connectionString: "mongodb://localhost:27017"

[该应用程序在手机上安装时按预期工作,我担心的是,如果我交付该应用程序,那么有人可以反编译该应用程序并取回凭据吗?

为了解决此问题,Android应用程序可以与后端进行交互,该后端会将请求路由到mongoDB,并且monogo凭据存储在该后端中。

我想在实现后端之前获取输入,以了解是否需要后端,或者android应用程序本身是否可以通过任何方式存储凭据,以便在反编译时不暴露凭据?

java android mongodb apk dalvik
2个回答
0
投票

如果我发布了该应用程序,谁能反编译该应用程序并取回凭据?

Android应用程序本身有什么方法可以存储凭据,以便在反编译时不会暴露凭据?

不,这是不可能的。您可以对其进行混淆以使其变得更难,但是如果应用程序具有它们,则无法阻止足够熟练/确定的攻击者来检索它们。

为了解决此问题,Android应用程序可以与后端进行交互,该后端会将请求路由到mongoDB,并且monogo凭据存储在该后端中。

这是执行此操作的唯一方法,也是正确的解决方案。


0
投票

如果我发布了该应用,则任何人都可以反编译该应用并检索凭证回来了?

技术上是。但是,如果您使用proguard,那么有人很难弄清楚您的数据库凭据。这可以是您的第一道防线

Android应用程序本身可以通过任何方式存储凭据,例如反编译时不会暴露出来?

是。使用密钥库。遵循此article

© www.soinside.com 2019 - 2024. All rights reserved.