Security 在PhoneGap中保护第三方API密钥/机密

Security 在PhoneGap中保护第三方API密钥/机密,security,cordova,Security,Cordova,我目前正在评估我心目中的一款应用程序的原生版本与PhoneGap版本的利弊,到目前为止,PhoneGap似乎是一个理想的选择,因为大多数数据处理都将在服务器端完成,而应用程序只是从用户处获取输入的一种手段 但是我已经读了很多关于所有PhoneGap.html和.js文件如何在一个根/越狱手机上轻松访问的内容。我担心我的应用程序将使用一些第三方API,特别是Last.fm和Parse。这两个API都有一个API秘密。这不会引起安全问题吗?虽然我的Last.fm API密钥可能造成的最大伤害是耗尽A

我目前正在评估我心目中的一款应用程序的原生版本与PhoneGap版本的利弊,到目前为止,PhoneGap似乎是一个理想的选择,因为大多数数据处理都将在服务器端完成,而应用程序只是从用户处获取输入的一种手段

但是我已经读了很多关于所有PhoneGap
.html
.js
文件如何在一个根/越狱手机上轻松访问的内容。我担心我的应用程序将使用一些第三方API,特别是Last.fmParse。这两个API都有一个API秘密。这不会引起安全问题吗?虽然我的Last.fm API密钥可能造成的最大伤害是耗尽API限制,但使用Parse,情况可能会严重得多,特别是如果我计划存储用户登录名、密码、电子邮件等。任何人都可以简单地获取我的Parse应用程序ID和JavaScript密钥,然后开始查询Parse(还有可能)(但不太可能)竞争对手或巨魔(更有可能)可以每秒从我的应用程序ID中推高请求,这样我就会得到一张巨大的10000美元钞票)


在PhoneGap中开发应用程序时,是否有任何方法可以保护/加密/混淆这些API密钥?如果您使用本机应用程序,这个问题会消失吗?

首先,我认为您提到的安全问题不仅与PhoneGap有关,本机应用程序也存在同样的问题。我承认,在本机应用程序中查找这些密钥比较困难,但这是可行的

另一方面,Android apk和Apple ipa文件实际上都是zip档案,所以你不需要根手机来打开和查看内部。你已经可以为所有应用程序(不仅是Phonegap,还包括原生应用程序)执行此操作了,打开归档文件,查看参考资料。但是在本机应用程序中,您有一个二进制可执行文件,而不是html/js文件。这就是为什么不容易弄清楚其中的数据(键)和应用程序逻辑的原因

一种方法是实现一个特殊的方案,在打包(开发)期间加密js文件,在应用程序中分发并在运行时解密。这是完全可能的(我们在一个项目中成功地做到了),您的Phonegap应用程序与本机应用程序一样难以破解。请注意,我并不是说不可能,因为您仍然存在将解密密钥隐藏在代码/资源中的问题。不过,请注意,编写这样的框架并不容易,还需要对Phonegap源代码进行一些修改

我认为隐藏用于解析等的密钥最安全的解决方案是使用您自己的服务器,实现服务器到服务器的身份验证,并将令牌传递给您的客户端进行客户端-服务器通信。在所有其他情况下,您必须随应用程序发送密钥,无论您如何隐藏,总会有人找到方法将其取消隐藏