11

我正在编写一个作为独立应用程序运行的基于 HTML5 的游戏。它通过网络分发,但没有其他服务器要求 - 没有数据库等 - 一切都是“应用程序内”。这是设计使然,因为额外的服务器会增加分发成本。

因此,鉴于它只是一个包含大量 JavaScript 的静态 html 文件,有什么办法可以阻止某人在他们自己的网站上托管该文件?是否有任何技术可以用来帮助缓解这种情况?

我关心的不是奇怪的用户,而是其他站点的身份盗用。非额外的服务器解决方案将是首选,但任何想法都会受到赞赏。

4

5 回答 5

11

如果一切都在客户端运行,那么您无能为力。您可以尝试混淆 JavaScript,但这不是一个非常有效的解决方案。您需要做的是以吸引人的方式将其绑定到后端,例如

  • 高分数
  • 多人游戏
  • 成就
  • 与您的其他游戏集成

通过提供卓越的体验,让他们有理由回到您身边。

最后积极寻找并保护您的知识产权。当您发现某个网站正在欺骗您时,请尽您所能将其关闭。

于 2011-04-08T17:21:39.030 回答
5

首先,当您分发应用程序的源代码时,任何具有一点技术知识的人都应该能够理解它是如何工作的。


但是您可以使事情变得更难——通常,使用混淆 (如此有意义的变量名称,例如'hero_score'被无意义的变量名称替换,例如'a45'

对于 Javascript 代码,请查看YUI Compressor

于 2011-04-08T17:20:02.977 回答
3

确保您的代码拥有明确的版权。仅凭技术原因,您无法赢得这场战斗。

正如 Pascal 所说,混淆和压缩代码是最好的技术解决方案。

考虑链接到服务器以进行登录或其他操作。像 Google AppEngine 这样的东西使运行可扩展的服务器变得非常简单和便宜。

于 2011-04-08T17:23:49.073 回答
1

我建议添加一个 javascript 函数来测试它在哪里播放,然后保护你的代码,在网络上你可以找到很多关于混淆/加密 javascript 的信息。

编辑:在这种情况下我会做什么,并且知道窃取/重新编辑 javascript 甚至被混淆,可以做到:

我将有一个服务器端页面来保存文件,并且一些核心变量将通过服务器端写入。

困难的部分是以一种无法仅在 javascript 中完成的方式(没有服务器端)进行编程。

然后,也许一些物品也可以通过服务器端构建/放置,这样海盗就很难重新制作所有东西。

此外,域检查的脚本可以通过服务器端完成。

于 2011-04-08T17:21:23.773 回答
0

我发现这个 Javascript Obfuscator 是你能得到的最好的保护,它使你的代码完全不可读,据说它会缩小它,而且我做了一个 JSPERF,它似乎也运行得更快。

www.javascriptobfuscator.com

About - Free Javascript Obfuscator 是一个专业的 javascript 混淆工具。它将 JavaScript 源代码转换为乱码且完全不可读的形式,防止其被分析和窃取。

输出代码如下所示。

var _0xe305=["\x48\x65\x6C\x6C\x6F\x20\x57\x6F\x72\x6C\x64\x21","\x0A","\x4F\x4B"
];var a=_0xe305[0];function MsgBox(_0xc87ax3){alert(_0xc87ax3+_0xe305[1]+a);}
;MsgBox(_0xe305[2]);

只要确保您保留原件的副本即可:)

于 2013-08-16T23:34:52.190 回答