Phonegap App Security - API 密钥和代码
Posted
技术标签:
【中文标题】Phonegap App Security - API 密钥和代码【英文标题】:Phonegap App Security - API keys and code 【发布时间】:2017-04-15 06:57:19 【问题描述】:我正在使用 Phonegap 构建 android 应用程序。这些应用程序使用 REST API。但我对 API 密钥的安全性有严重的疑问。我一直在到处寻找答案,但问题没有得到很好的回答。如您所知,可以提取一个 android apk,并且可以对 Phonegap 文件夹进行逆向工程。我有这些问题/可能的解决方案:
-
有没有办法(可能是插件)用密码保护“www”文件夹?因此,当有人提取 apk 时,必须有一个密码来保护 phonegap 文件。我提取了许多 apk,并在许多基于 Phonegap 的应用上看到了这一点。
有没有办法将 API 密钥保存在 config.xml 中并使用 JS 读取?
有没有一种方法可以在不使用 facebook、google、linkedin 或 twitter 等登录身份验证的情况下安全地验证 phonegap 应用程序?这适用于不需要登录但仍使用这些 API 的简单应用
我使用了 javascript 混淆。但需要一个更强大的选择。 任何人都可以帮忙吗?
【问题讨论】:
老实说,对 API 密钥进行逆向工程就像安装网络监控应用程序或在有根的 Android 设备上查看 logcat 一样简单。 【参考方案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。标记它正确。尽管您的回答也增加了价值。以上是关于Phonegap App Security - API 密钥和代码的主要内容,如果未能解决你的问题,请参考以下文章
phonegap(cordova)从手机app跳转到web页面在跳转回APP本地页面思路
Hybird App——cordova(原PhoneGap)安装配置