PhoneGap源安全

时间:2013-07-28 19:12:03

标签: javascript security cordova obfuscation

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

  

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

     

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

以下模式如何:

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

答案 2 :(得分:1)

我建议:

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

当应用程序启动时:

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

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