保护HTML5游戏的来源

How*_*ard 11 html javascript html5

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

实质上..

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

zat*_*ata 11

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


Jör*_*eld 7

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

要清楚 - 是的,其他人是对的,没有最终的保护...... bla bla.但是:曾经尝试用Google做谷歌的头或尾吗?我尝试过但失败了.如果在代码中使用混淆的类名和极少的字符串,则很难读取,这意味着可能需要数月才能完成,具体取决于代码的复杂程度.

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


小智 7

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

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

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

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