TLDR -
考虑到您正在编写一个网站,并且所有代码(html 和 js)对于使用
Crtl+Shift+i 的用户来说都是可见的,就像在浏览器
中一样 确保最大安全性的一些要点
- 如果您使用后端,请重新检查来自应用程序的所有内容
- 网站上所有可能的攻击(XSS、重定向到恶意网站、克隆网站等都是可能的)
- 发送到应用程序的所有数据最终将在一些 js 变量/资源文件中可用,因为所有变量都可以被黑客访问,所以即使您使用最安全的数据传输机制,所有发送到应用程序的数据也是如此
- 正如西蒙在他的回答中正确所说,phonegap 或 cordova 不会将html/js 转换为本地代码。Html / Js 按原样可用Cordova
在其官方声明中也明确提到了这一点
不要假设您的源代码是安全
的 由于 Cordova 应用程序是由打包在本机容器中的 HTML 和 JavaScript 资产构建的,因此您不应认为您的代码是安全的。可以对 Cordova 应用程序进行逆向工程。
5.主要是网站用来防止其代码被克隆/易于理解的所有技术即使在这里也适用(主要包括将js代码转换为难以阅读的格式-混淆代码)
6.比较原生应用程序与cordova/phonegap应用程序原生应用程序,我会说科尔多瓦对黑客来说更容易,只是因为科尔多瓦开发人员之间缺乏意识,他们没有采取足够的措施来保护它,并且缺乏现成的(一键式)机制来直接混淆代码与 android proguard
示例 Cordova 应用程序黑客(注意:Phonegap 也以类似的方式工作)
我将展示一个示例来展示黑客破解cordova应用程序是多么容易(开发人员没有努力混淆代码)
基本上我们从解压缩apk文件开始(apk可以像zip文件一样解压缩)
内容内部将与此类似
Cordova 应用程序的源代码存在于 /assets/www/ 文件夹中
您可以看到所有内容,包括与应用程序一起打包的任何数据库都是可见的(请参见最后 2 行有一个 db 文件)
除了它,任何其他资源也直接可见(文本文件/js/html/音频/视频/等)所有视图/控制器也是可见和可编辑的进一步探索内容我们找到一个 PaymentController.js 文件
打开它我们可以直接查看js代码和其他注释
这里我们注意到,在用户执行支付后,如果成功则调用successCallback,否则调用cancelCallback。
黑客可以简单地替换这两个函数,以便在支付不成功时调用successCallback。
在没有其他检查的情况下,黑客已成功绕过付款。