阻止人们复制JavaScript代码

时间:2012-07-19 11:55:59

标签: javascript html5 security

我正在开发一个JavaScript / HTML5游戏,显然任何人都能够阅读代码,我宁愿不会这样做。 我感谢我无法阻止人们阅读JavaScript;我可以通过模糊它来使它变得更加困难,但不能阻止它。

我可以将它转换为Java applet(我怀疑逆向工程这些仍然是可能的,但我认为这会更难)只需要一个瘦的JavaScript包装器(如果需要)。

有人还提到可能会使用jQuery和JSON,但我怀疑客户端/服务器的交互可能有点慢,以使其变得实用。

有没有人知道其他阻止人们剥夺工作的方法?

4 个答案:

答案 0 :(得分:2)

如果是javascript,它可以被其他人阅读,无论你使用 JQuery 还是 AJAX ,因为它必须由客户端的计算机处理并且为此,它需要转移到它。

如果您坚持使用JavaScript,最好的办法是obfuscate您的代码。这样,人们就很难窃取您的代码。

如果你要将它转换为Java Applet,它只会稍微好一点,因为客户端可以检索你的Applet,而像JD这样的Java反编译器可以帮助他至少部分查看源代码。您必须通过类似ProGuard的操作来运行它,以混淆该代码。

如果必须在客户端运行,无论您选择哪种语言,都至少会看到您的代码源。您所能做的就是使用模糊处理使代码更难阅读,理解和反向工程。

答案 1 :(得分:1)

  

我认为我不能阻止人们阅读javascript,我可以通过暗示它来使它更难,但不能阻止它。

没错,虽然高级模式中的Closure compiler使得代码几乎完全不为人类所能读取。 (它还优化了它,在适当的情况下内联[如果稍后运行它的JavaScript引擎没有],删除死代码,并使标识符尽可能短,以及其他一些东西。)

  

我可以将它转换为Java applet(我怀疑逆向工程这些仍然是可能的,但我认为它会更难)......

是的,这完全有可能。有一些工具可以将Java字节码(将传递给客户端的内容)转换回可读源。变量名和其他一些东西都丢失了,代码可能看起来有点奇怪,但工具就在那里。坦率地说,我完全不确定它会比处理Closure编译器的高级优化版本更难。

  

有人还提到可以使用JQuery和JSON ......

他们一定不明白,客户也完全可以阅读。

  

有没有人知道阻止人们剥夺工作的其他方法?

我最好的建议是Closure编译器。如果不这样做,如果你愿意采用专有路线,那就使用Flash - 但是像Java applet这样的Flash应用程序可以进行逆向工程。我有印象它比反向工程Java applet更难,但我不太了解Flash。

答案 2 :(得分:0)

我说你最好的选择是不要试试。如果您通过网络提供源代码,人们将能够阅读它。混淆可能会使其变得更加困难,但不会阻止某人下定决心。而那些坚定的人,你可能最想停下来。我建议你简单地使用它:干净利落地编写你的代码,使用缩小器下载大小,并接受其他人能够阅读它的事实。


如果你真的想把它移植到另一种语言,那很好。但Java applet几乎同样易于解码,因此您必须在服务器端执行此操作或以其他方式提供它而不是在浏览器中。如果这种权衡对你来说是值得的,那么有很多可用的编译语言。

答案 3 :(得分:0)

混淆是你最好的选择。我们的目标不是阻止他们阅读您的源代码,而是让他们更容易/更便宜地手动重新创建它,从而阻止他们扯掉您的工作。