【发布时间】:2017-03-12 19:47:00
【问题描述】:
我正在创建一个通过 API 连接到服务器的 Android 应用。我担心安全问题,就我而言,任何人都可以反编译您的.apk 并查看或修改您的代码。
知道了,我需要将 API 密钥保存在应用程序的什么位置,以避免某些坏人窃取它并访问服务器,例如修改我的数据库?
谢谢
【问题讨论】:
我正在创建一个通过 API 连接到服务器的 Android 应用。我担心安全问题,就我而言,任何人都可以反编译您的.apk 并查看或修改您的代码。
知道了,我需要将 API 密钥保存在应用程序的什么位置,以避免某些坏人窃取它并访问服务器,例如修改我的数据库?
谢谢
【问题讨论】:
了解攻击者将如何追踪您的应用程序,95% 的时间都按此顺序:
通过使用像Burp 这样的拦截代理来检查应用程序和服务器之间的流量——这很容易做到。看看我在 Words With Friends here 上是如何做到的(这适用于 iOS 设备,但同样的概念适用于 Android)。
您可以使用 certificate pinning 停止流量检查,但他们可以通过 root 设备并在 Android 上使用一些黑客工具来打破这种情况。所以你需要Android root detection。
另一种攻击是扫描您的二进制文件。您需要使用 DexGuard 之类的工具对其进行混淆处理。
这些方法都不是万无一失的:通常试图在客户端代码中隐藏秘密是losing game。不要付出超过其价值的努力。
【讨论】: