【问题标题】:How to protect freemium HTML5 from variable modification?如何保护免费增值 HTML5 免受变量修改?
【发布时间】:2013-01-22 04:13:19
【问题描述】:

有些人就保护 HTML5 应用和保护免费增值应用提出了类似的问题,但并非两者兼而有之。我单独提出这个问题是因为我的印象(无论是对还是错)HTML5 与原生相比特别不安全。

我正在开发一个嵌入式 HTML5 应用程序,我想使用免费增值模式获利,但我担心如何防止其虚拟货币和评分变量太容易被最终用户弄乱,因为我担心如果某些黑客(该术语无意冒犯)要创建有关漏洞利用的 YouTube 视频或博客帖子,这可能会对收入产生负面影响。我认为这不太可能在早期发生,但我认为漏洞会随着受欢迎程度而变得更加重要。我还担心有人可以复制应用程序。

虽然我意识到这两种情况都可以通过设备上安装的应用程序来实现。

我的问题是:

  1. 根据您的看法或经验,弄乱一个 未混淆的嵌入式(不依赖于浏览器)HTML5 应用程序及其 Javascript 与具有基于 Java 或 Objective-C 数据的核心文件的本机应用程序?/混淆对 HTML5 应用程序与本机混淆的效果如何 数据保护方面的应用?
  2. 与在常规 Android 应用上使用 Proguard 之类的东西相比,混淆 HTML5 应用的难度有多大?
  3. 对于普通用户来说,混淆是否会导致 HTML5 明显变慢?
  4. 最后,您认为拥有一个 HTML5 应用程序是否实用 免费增值功能?还是您个人认为它太脆弱了?

我主要想弄清楚 HTML5 是否特别容易受到攻击或难以保护,至少与保护原生应用程序相比是这样。如果混淆的 HTML5 应用程序与常规应用程序一样安全或不安全,那么我想我可以接受。

【问题讨论】:

  • 如果存在安全问题,您始终可以使用 MySQL。但是 +1 因为我很想知道其他人要说什么。

标签: html obfuscation source-code-protection


【解决方案1】:

防止作弊的唯一方法(解锁免费增值项目是一种作弊)是将所有相关的游戏逻辑移至服务器。忘记混淆。当它在客户端机器上执行时,它在用户的控制之下。混淆可以减慢用户的速度,但不能阻止决心破解它的人。这不仅适用于 javascript,它适用于每个游戏客户端,无论它是用什么编程语言编写的。

设计防作弊多人游戏的一般规则是永远不要信任客户端并在服务器上进行与游戏玩法相关的所有计算。

【讨论】:

  • 感谢 Philipp 的回答。我不需要阻止所有作弊,我只是希望能够使普通用户无法访问它变得足够困难。我现在已经接受了这样一个事实,即一旦游戏变得相当流行,甚至只是在中国市场上有点流行,我可能就会有克隆。但我担心像针对网络版割绳子那样的漏洞利用,并担心他们可能会有 - 请参阅http://dev.appmobi.com/?q=node/244
【解决方案2】:

在我看来,最好混淆并永远不要信任客户。 不仅如此,我什至会压缩混淆代码,并在客户端和/或服务器中添加混淆解压缩器。 该技术是可行的,并且是专业公司在整个网络上使用的技术。

现在,回答你的问题:

  1. 混淆正确混淆的代码并不容易(一些 这将要求您压缩/加密偶数)。专业 黑客不会为了“运动”而弄乱你的代码,除非他们被给予 这样做的钱,即使在那种情况下,他们也很难做到 它(这就是为什么我不相信“忘记混淆”的方式 思考)。
  2. 混淆在数据保护方面非常有效。您的代码 变得不可读,并且在某种程度上,它可以被视为 压缩算法,从而减少文件大小和加载时间。
  3. 如果你依赖专业工具,混淆是很容易的 混淆,例如 JS、html5、css 和 php。它是 仅当您必须开发此类工具时才更难。但是存在 该领域的开源软件也是如此。
  4. 它肯定会减慢“普通用户”的速度,他们会在 你编码。
  5. 拥有一个具有免费增值功能的 HTML5 应用程序很实用,但它 一切都取决于您对此类选项的实施。
  6. 如果按照上述方法正确操作,它就不太容易受到攻击,但是, 就个人而言,我不喜欢这种商业模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    相关资源
    最近更新 更多