【问题标题】:How to hide hardcoded sensitive info in the app from getting extracted? [closed]如何隐藏应用程序中的硬编码敏感信息以防被提取? [关闭]
【发布时间】:2018-02-18 21:15:08
【问题描述】:

我正在制作一个 Android 应用程序,用户可以在需要支持时选择与我联系,该应用程序本身包含一个内置的联系表格,当用户填写他的消息时,该应用程序会向我发送一封电子邮件,为此,我创建了一个 Google 帐户并指示该应用使用“SMPT”登录该帐户并将电子邮件发送到我的个人邮箱。所以应用程序中的联系表格就像一个迷你电子邮件应用程序,只能发送到我的个人电子邮件。为此,我必须在 Java 类文件中添加 Google acc 电子邮件和密码,所以基本上如果用户反编译应用程序并打开 Java 类文件,他会发现: 字符串用户名 = “myemail@gmail.com” 字符串密码 = “我的密码” 现在有没有一种方法可以在反编译应用程序时隐藏该 java 类? 请不要建议改变用户联系我的方式,因为当用户联系我时,应用程序会发送嵌入在电子邮件中的敏感数据,因此我可以为用户提供支持,所以基本上试图改变这种联系方式, 要么导致我不得不向用户显示这些敏感数据并要求他在应用程序外部通过电子邮件发送它,要么我将不得不丢弃对支持至关重要的数据,因此用户可以联系的唯一方式,是上面描述的那个,现在我怎样才能隐藏java类文件不被反编译应用程序的人看到?提前致谢!

【问题讨论】:

标签: java android security


【解决方案1】:

现在有没有一种方法可以在反编译应用程序时隐藏该 java 类?

没有。

充其量,使用 DexGuard 之类的商业工具,您可以让攻击者更难获得字符串,但要击败这些工具并不难。

因为当用户联系我时,应用会发送嵌入在电子邮件中的敏感数据

不要通过电子邮件发送敏感数据。通过 SSL 连接将其发送到您的 Web 服务,使用证书固定来帮助阻止中间人 (MITM) 攻击。

要么导致我不得不向用户显示这些敏感数据

这是用户的数据,因此用户看到该数据是完全合理的。毕竟是用户的设备,用户的电池,用户的带宽,用户的时间。您的应用充其量只是拼图中的一小部分。

因此,用户可以联系的唯一方式就是上述方式

不,不是。

现在我怎样才能隐藏 java 类文件不被反编译应用程序的人看到?

你不能。

【讨论】:

  • 好的,谢谢!而对于向用户显示他的数据的部分,这是完全正常的,但是当我要求他发送它时,他可能会尝试修改它,我不知道他是否这样做,这就是为什么,无论如何感谢您的回答!跨度>
  • 那么您需要确保发送的数据不会在您不知情的情况下被篡改,例如通过校验和。客户端/服务器编程的基本规则:你永远不能相信来自客户端的数据。
猜你喜欢
  • 2018-01-31
  • 2016-05-18
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
相关资源
最近更新 更多