我正在编写一个作为独立应用程序运行的基于 HTML5 的游戏。它通过网络分发,但没有其他服务器要求 - 没有数据库等 - 一切都是“应用程序内”。这是设计使然,因为额外的服务器会增加分发成本。
因此,鉴于它只是一个包含大量 JavaScript 的静态 html 文件,有什么办法可以阻止某人在他们自己的网站上托管该文件?是否有任何技术可以用来帮助缓解这种情况?
我关心的不是奇怪的用户,而是其他站点的身份盗用。非额外的服务器解决方案将是首选,但任何想法都会受到赞赏。
我正在编写一个作为独立应用程序运行的基于 HTML5 的游戏。它通过网络分发,但没有其他服务器要求 - 没有数据库等 - 一切都是“应用程序内”。这是设计使然,因为额外的服务器会增加分发成本。
因此,鉴于它只是一个包含大量 JavaScript 的静态 html 文件,有什么办法可以阻止某人在他们自己的网站上托管该文件?是否有任何技术可以用来帮助缓解这种情况?
我关心的不是奇怪的用户,而是其他站点的身份盗用。非额外的服务器解决方案将是首选,但任何想法都会受到赞赏。
如果一切都在客户端运行,那么您无能为力。您可以尝试混淆 JavaScript,但这不是一个非常有效的解决方案。您需要做的是以吸引人的方式将其绑定到后端,例如
通过提供卓越的体验,让他们有理由回到您身边。
最后积极寻找并保护您的知识产权。当您发现某个网站正在欺骗您时,请尽您所能将其关闭。
首先,当您分发应用程序的源代码时,任何具有一点技术知识的人都应该能够理解它是如何工作的。
但是您可以使事情变得更难——通常,使用混淆 (如此有意义的变量名称,例如'hero_score'
被无意义的变量名称替换,例如'a45'
)
对于 Javascript 代码,请查看YUI Compressor
确保您的代码拥有明确的版权。仅凭技术原因,您无法赢得这场战斗。
正如 Pascal 所说,混淆和压缩代码是最好的技术解决方案。
考虑链接到服务器以进行登录或其他操作。像 Google AppEngine 这样的东西使运行可扩展的服务器变得非常简单和便宜。
我建议添加一个 javascript 函数来测试它在哪里播放,然后保护你的代码,在网络上你可以找到很多关于混淆/加密 javascript 的信息。
编辑:在这种情况下我会做什么,并且知道窃取/重新编辑 javascript 甚至被混淆,可以做到:
我将有一个服务器端页面来保存文件,并且一些核心变量将通过服务器端写入。
困难的部分是以一种无法仅在 javascript 中完成的方式(没有服务器端)进行编程。
然后,也许一些物品也可以通过服务器端构建/放置,这样海盗就很难重新制作所有东西。
此外,域检查的脚本可以通过服务器端完成。
我发现这个 Javascript Obfuscator 是你能得到的最好的保护,它使你的代码完全不可读,据说它会缩小它,而且我做了一个 JSPERF,它似乎也运行得更快。
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]);
只要确保您保留原件的副本即可:)