【问题标题】:Phonegap App Security - API keys and codePhonegap App Security - API 密钥和代码
【发布时间】:2017-04-15 06:57:19
【问题描述】:

我正在使用 Phonegap 构建 Android 应用程序。这些应用程序使用 REST API。但我对 API 密钥的安全性有严重的疑问。我一直在到处寻找答案,但问题没有得到很好的回答。如您所知,可以提取一个 android apk,并且可以对 Phonegap 文件夹进行逆向工程。我有这些问题/可能的解决方案:

  1. 有没有办法(可能是插件)用密码保护“www”文件夹?因此,当有人提取 apk 时,必须有一个密码来保护 phonegap 文件。我提取了许多 apk,并在许多基于 Phonegap 的应用上看到了这一点。
  2. 有没有办法将 API 密钥保存在 config.xml 中并使用 JS 读取?
  3. 有没有一种方法可以在不使用 facebook、google、linkedin 或 twitter 等登录身份验证的情况下安全地验证 phonegap 应用程序?这适用于不需要登录但仍使用这些 API 的简单应用

我使用了 Javascript 混淆。但需要一个更强大的选择。 任何人都可以帮忙吗?

【问题讨论】:

  • 老实说,对 API 密钥进行逆向工程就像安装网络监控应用程序或在有根的 Android 设备上查看 logcat 一样简单。

标签: cordova security phonegap-plugins phonegap-build phonegap-cli


【解决方案1】:

实现此目的的最佳方法是(如果您无法控制 API)。设置您自己的服务器端 API 来存储您的凭据,然后使用该 API 向其他 API 发出请求,然后您的 API 可以发回响应。这样想吧。

APP > 你的 API > API > 你的 API > APP

【讨论】:

  • 嗨 L Balsdon。感谢您的建议。实际上,我使用的是我自己的 API,用于获取一些 AI 处理的内容。算法在服务器上运行。但是 API 密钥位于 apk 中(在混淆的 JS 中)。该应用程序应该是一个简单的内容应用程序,不需要用户身份验证或登录。因此,我担心 API 容易受到攻击,任何可以访问该 apk 的人都可以立即使用该 API。
  • 我认为这是最好的前进方式。使用您的方法会使事情变得更好。试了一下。标记它正确。谢谢:)
  • 谢谢,很高兴我能帮上忙。
  • 这是错误的。您隐藏了 API 密钥,但并没有真正将服务隐藏在这些密钥后面。基本上,有人可以直接访问您的服务器,并使其代理对远程 API 的请求,而无需密钥。在这种情况下,他是在冒充您的应用程序。
【解决方案2】:

我觉得

https://github.com/tkyaji/cordova-plugin-crypt-file

插件可能会帮助你。它仍然会在运行时解密这些东西。

这个话题也有类似的话题。

How to encrypt the content assets folder in phonegap android application

希望这会有所帮助。 :)

【讨论】:

  • 感谢 Rajith :) 我认为 L Balsdon 的方法有助于很好地保护 API。标记它正确。尽管您的回答也增加了价值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-07
  • 2020-06-01
  • 2018-03-15
  • 2017-03-12
  • 2011-11-19
  • 2012-05-18
  • 1970-01-01
相关资源
最近更新 更多