PhoneGap源安全

问题描述 投票:7回答:3

Platform Security的最后一节中,它提到了一种在PhoneGap应用程序中保护源代码的方法。

逆向工程是很多人使用PhoneGap的一个问题,因为人们可以简单地打开应用程序二进制文件并查看应用程序的JavaScript源代码。甚至可以添加恶意JavaScript代码,重新打包应用程序并将其重新提交到应用商店/市场以尝试应用网络钓鱼。无论是用PhoneGap还是其他方式编写,这种做法都可以在任何应用程序中进行,因为对Java或Objective-C进行反编译也是一个类似的简单任务。

PhoneGap实际上可以解决这个安全问题,因为应用程序开发人员可以在运行时下载其应用程序中的JavaScript,运行该JavaScript,并在应用程序关闭时将其删除。这样,当设备处于静止状态时,源代码永远不会出现在设备上。使用Java或Objective-C这是一个更加困难的前景,更不用说App Store中围绕动态运行Objective-C代码的限制了。

但是,我想知道如何防止他人在服务器上下载我的源代码?

javascript security cordova obfuscation
3个回答
2
投票

我建议您注释您的代码,然后通过Google的Closure Compiler运行它,这将对其进行模糊处理并执行某些优化。这将使人们很难阅读您的代码,但除此之外,您将不得不忍受JS是客户端语言这一事实​​。


1
投票

以下模式怎么样:

  1. 在您的应用程序中嵌入一个引导程序JavaScript,它可以对您的服务器启用用户/设备身份验证。尽你所能来混淆引导程序代码。
  2. 将应用程序的主要逻辑保留为服务器上的JavaScript(可由经过身份验证的用户访问)
  3. 身份验证后,在运行时下载主逻辑JavaScript,运行该JavaScript,并在应用程序关闭时将其删除

无痛地进行持续升级。


1
投票

我会建议:

  • 混淆大部分/全部JS代码。谷歌的Closure编译器是不错的选择。

当应用程序启动时:

  • 在调用服务器进行动态数据提取之前,需要在设备上存储一些哈希码,这些哈希码需要进行验证
  • 在App启动期间,首先将App hashcode推送到服务器以验证App真实性,Server将检查该hashcode以验证App的合法性
  • 一旦服务器验证了应用程序的合法性,服务器就可以发送另一个哈希码或继续使用相同的哈希码。 Plus服务器也可以设置自定义cookie参数......这一切都取决于App&Server通信的体系结构。因此,设置最符合您需求的东西
  • 一旦验证了App的合法性,那么从设备到服务器的所有呼叫都应包含相同的哈希码或cookie,服务器将在应答呼叫之前先验证它。

而不是发送新的js代码,它更好地推送json动态数据并保持js代码在设备上进行模糊处理。

© www.soinside.com 2019 - 2024. All rights reserved.