如何保护HTML5+PhoneGap手机应用中的数据
How to protect data in HTML5+PhoneGap mobile app?
是否可以保护使用PhoneGap + HTML5创建的移动应用程序中的sqlite数据库?我有一大块数据,我想保护它们。但从使用技术的性质来看,在我看来这几乎是不可能的。如果不可能保护数据,那么是否至少可以使用一些混淆来阻止"脚本kiddy"不要轻易尝试获取数据?
软件的用户比您更有权利控制sqlite数据库。你的软件只是一个访问他的机器的人。任何形式的加密都是安全的,尽管不透明,因为你不能在设备上有秘密(或秘密密钥)。
如果你想保护一个数据库,那么你必须托管它。我建议设置一个RESTful接口,以便移动设备上的js可以对数据执行操作。您应该假设攻击者对这个RESTful接口有100%的访问权。永远不要公开像do_query("select ...");
这样的函数。确保将sql注入考虑在内。
您可以做的一件事是在数据进入数据库时对其进行加密,然后在数据返回时对其进行解密。为了以一种半可维护的方式做到这一点,你需要某种DB访问层,在那里加密/解密可以发生,这样你的主应用程序就不需要担心它了。
我不是特别精通PhoneGap,所以我不确定是否有任何现有的插件可以做到这一点。但是,如果你不介意加密/解密与应用程序代码耦合的麻烦,你可以通过encrypt(myData)
函数在进入DB的路上传递一切,然后通过decrypt(myData)
函数在出去的路上。这将工作得很好,如果你只去/从DB在几个地方。
这是一个相当重量级的解决方案,但正如您所说,选项相当有限。
最后,我建议使用设备ID(如果你能得到它),或者其他一些每个帐户或每个设备获取加密密钥的方法,这样每个设备更难以破解,而不是所有设备使用相同的密钥。用户名的散列或盐渍用户名或密码的盐渍散列都可能是不错的选择。
您也可以在JavaScript中使用JSAES: AES加密数据,但是您需要在服务器/用户中使用某种密钥管理机制。
- GCM推送通知,如果应用程序在手机中关闭(Phonegap Android)
- Ionic应用程序无法识别android手机中的语音
- 如何让安卓佩戴在手机和平板电脑的应用程序中振动
- jquery手机应用程序的第一页必须是index.html
- 手机应用程序:云存储与本地
- 点击按钮在手机中加载现有的Android应用程序
- 使用手机应用程序的javascript更改CSS样式
- 建议facebook好友下载手机应用程序
- 我如何制作一个在没有pebble'的手机应用程序正在运行
- 现在是否可以在Android手机中使用HTML5或混合应用程序读取智能卡
- 安卓应用无法在智能手机上打开网页
- 基于 Web 的应用程序是否有可能以某种方式访问智能手机的位置?并报告回来
- iPhone设备黑色屏幕在我的jQuery手机Gap应用程序导航中闪烁
- 苹果手机网页应用设计
- 我的手机间隙应用程序没有变化
- 在Android手机间隙应用程序中单击后退按钮时强制关闭
- 具有PhoneGap的手机上的网络应用程序
- Fb UI 在智能手机 fb 应用程序中共享 URL 参数
- 使用JQuery手机和手机间隙创建笔记应用程序
- 跨浏览器/跨平台离线手机应用程序