保护HTML5游戏的来源

时间:2012-03-08 03:47:46

标签: javascript html html5

人们一直在为HTML5说出这么多好话,但我主要担心的是如何保护游戏的源代码。

基本上..

  1. 如何防止他人使用我们自己开发的游戏引擎(这是一项庞大的资产)
  2. 如何防止他人下载游戏并将其托管在其他平台
  3. 如何隐藏源中的服务器API调用详细信息,例如我们自己的记分牌API,虚拟货币API等。

8 个答案:

答案 0 :(得分:11)

“你不能”是所有3个问题的答案。你唯一能做的就是通过模仿它来减慢对你的代码感兴趣的人,但最终,如果有人想要使用你的代码,那么你无能为力。

答案 1 :(得分:7)

我个人使用 Google Closure Compiler 进行高级压缩,以模糊我的代码(下载Java文件,不要使用在线版本!)。准备代码需要花费一些额外的精力,但是一切都很好,一旦你理解了编译器的工作方式,就很容易遵守它的规则。它不仅模糊了你的代码,而且实际上也优化了它的执行速度和文件大小。

要明确 - 是的,其他人是对的,没有最终的保护...... bla bla。但是:曾经试图用Google做谷歌的头或尾吗?我尝试过但失败了。如果你在代码中使用模糊的类名和非常少的字符串,那么它将很难阅读,这意味着它可能需要几个月的时间,具体取决于代码的复杂程度。

对于API调用,情况有所不同。加密将不起作用,因为解密代码将在javascript中可见 - 即使混淆该部分将难以隐藏,因为AJAX代码总是看起来有点相似...而且加密耗尽了你可能在其他地方需要的CPU时间。推迟是一种方式,但最终,API调用或多或少可读。

答案 2 :(得分:7)

模糊你的javascript代码可能是一个重要的步骤。混淆会使代码变得如此复杂,以至于没有理智的人会试图破解它。

我一直在使用jscrambler.com,效果很好。也就是说,混淆不会解决所有问题。用户仍然可以查看浏览器和服务器之间交换的所有流量。因此,他们将了解API的工作原理以及如何使用它。

为避免这种情况,您可以使用javascript对邮件进行加密。这可能有助于保护内容。我在stackoverflow上发现了一篇关于使用javascript讨论加密的帖子:Javascript AES encryption。可以使用一些具有低性能影响的实现。

最后但并非最不重要的是,应在服务器端彻底检查所有输入。可以在服务器端实现的所有逻辑都应该保留在那里。

答案 3 :(得分:4)

您可以在安全硬件柜(如机场)的触摸屏电脑上运行游戏,而不是通过互联网访问。也许不是你想要的理想答案。

答案 4 :(得分:2)

最终,网络上没有资产保护。如果您可以在浏览器中看到它,可以使用curl下载它。如果保护资产是您的主要关注点,我不建议使用HTML和JavaScript。

您可以对代码进行模糊处理以防止随意盗窃并使用SSL来防止窥探,但勤劳的人仍然可以通过其他方式访问这些资产。

答案 5 :(得分:0)

缩小你的js代码将使重用更加困难,但并非不可能

答案 6 :(得分:0)

没有物理方法可以复制保护数字文件。许多行业都尝试过。许多人失败了。可悲的是,很多人会继续尝试并继续失败,但是企业似乎很难从过去的错误中吸取教训。

最好不要过分关注它。专注于您的客户。

答案 7 :(得分:0)

在2019年问自己一个与在巴比伦开发的问题相同的问题....直到今天,没有防弹方法可以做到这一点,但是您可以通过使访客注册为用户并保护您的游戏来最大程度地降低风险暴露登录级访问权限后面的代码。