7

我正在开发适用于 Android/iOS 的 phonegap-app。

如果我理解正确,如果有人打开了 phonegap-app 包,他可以将 html/js/css 复制到他们自己的 phonegap-app 中。这是我想让事情变得更加困难的事情。

我的应用程序无需有效的互联网连接即可运行,我希望保持这种状态。

我能想到的最佳解决方案是将 (40) 个 HTML 文件的(部分)存储在本机 Java/ObjectiveC 变量中,并使用 javascript 和自定义 Phonegap 插件检索它们。这样,在创建应用程序时,HTML 也会被加密。

这是一个可行的解决方案还是浪费时间?

4

3 回答 3

12

这是 Kerri Shotts 的 PhoneGap Google Group 中我最喜欢的答案之一。我喜欢它,因为她概括了我对此事的想法,但比我更有说服力:

并不真地。是的,你可以混淆它,但我可以解码它。您可以对其进行加密,但这意味着密钥在您的代码中某处,这意味着我也可以对其进行解密。一旦我有了设备和你的位,我就可以用它们做任何我想做的事情。

请记住:设备和操作系统不是为了保护应用程序免受用户的侵害。它可以保护您的用户免受您的应用程序的影响。与安全完全不同的一面。

请记住,这在很大程度上适用于原生应用程序。给我一个 Java 或 ObjC 程序,我也可以很容易地弄清楚它的功能。此外,在大多数平台上,所有的图形资源都只是普通文件,这意味着它们很容易被复制。

这就是为什么有这么多盗版/克隆应用程序的原因。最终,只要我对您的软件有所了解,您就无能为力。你所能做的就是让它对用户来说“更难”——而“硬度”的水平与让用户“更难”所需的努力成正比(如果不是指数的话)。也就是说,如果你做到了让90%的用户都无法破解系统,那就是强化应用程序的一个难度;然后让它让 99% 的人无法破解它需要在编程难度上有一个显着的飞跃。

当然,您可以在读取加密 www/ 文件夹的本机代码中创建动态解密例程。如果您想这样做,请继续。(黑客仍然可以绕过它。有/总是/一种方法。)我愿意走那么远吗?没有。这不值得我花时间或精力,尤其是当它不能保护我免受那些真正有兴趣打击我的人的伤害时。[另一个问题:PG应该这样做吗?不。只是安全专家,大多数开发人员都不是。]

我是否对安全持悲观态度?是的。如果您分发这些位,您将失去安全性。因此,如果您需要应用程序的工作非常安全,那么这些工作应该在设备外的非常安全的服务器上位于几个非常安全的防火墙后面,并且知道中间有多少安全性以确保没有人能猜到该应用程序甚至如何对此服务器进行身份验证。

我这么说只是因为我认为大多数应用程序担心 www/ 文件夹是可见和暴露的事实是不值得的。到目前为止,我想说的是,对于 99.99% 的应用程序来说,这是真的。除非您在医疗保健(并记录敏感信息)或政府或银行(与实际银行合作)工作,否则您无需担心。如果你是,你应该使用PG吗?此外,您是否应该使用移动设备?在我看来,最好是一个客户端代码很少并且本质上是一个黑盒子的 webapp。

于 2012-08-27T14:08:19.900 回答
5

如果某些东西很有价值,也值得保护人们的访问(例如身份验证详细信息),那么将其放入他们拥有的一些编译代码中是不够安全的。

否则,您在 HTML、Javascript 和 CSS 中拥有哪些如此有价值的东西?它不可能是代码本身,因为如果他们不能复制它,他们可以只看它,然后说“哦,这是个好主意”,然后复制这个想法而不看代码。好的想法比代码行更有价值,这样你就无法隐藏它们。在这种情况下,你让你的生活变得更难,比你让他们更难。

于 2012-08-27T12:17:05.380 回答
-1

这是 Cordova/PhoneGap 应用程序源代码安全的最佳插件。试试这个插件:cordova plugin add https://github.com/tkyaji/cordova-plugin-crypt-file.git

于 2019-02-25T19:16:56.273 回答