保护客户端代码

时间:2011-03-29 16:42:53

标签: java javascript encryption encryption-asymmetric

我正在开发一个使用客户端代码(js是特定的)的应用程序,需要保护它。即这样用户就无法窃取代码并重复使用它。混淆不是一种选择,因为我需要完全保护代码(使用加密)。在广泛搜索互联网以获得允许js加密的解决方案之后,我得出结论,这个专有代码只能在服务器端执行以确保其安全性。

是否有任何人有任何其他想法或解决方案,这将减轻服务器必须处理可以在客户端使用js完成的事情。在服务器上执行某些代码是一种选择,但资源有限。另一个问题是它需要像“服务器端js”,即用户体验不会改变。

5 个答案:

答案 0 :(得分:2)

如果代码是客户端,则他们有代码。期。这就是互联网的运作方式。

如果你想保护它不受最终用户的影响,那么是的,你需要在服务器端保留它。唉,这将改变用户体验。真的没有办法解决这个问题,不过通过明智的AJAX调用你可以找到一个快乐的媒介。

答案 1 :(得分:2)

不,听起来你几乎已经掌握了一切。使用服务器处理需要安全完成的任何事情。使用javascript显示从服务器发送的数据。

我不知道您正在使用什么应用程序,但通常将重要处理卸载到客户端的工作涉及如此多的数据传输,从长远来看服务器必须做更多的工作。我可以问你想在客户端做什么样的处理吗?

答案 2 :(得分:1)

用户体验将 更改为服务器端解决方案,只需要在不同的盒子上运行代码,并在两者之间建立网络。延迟不同。当然,它可能已经足够好了,但是如果不知道它是什么类型的应用程序就很难说。

我能想象的最接近的是在一个安全的应用程序中托管某种JavaScript引擎......但是你可以从游戏行业的状态来判断他们发现它是多么容易制造不可动摇的客户端代码。基本上,如果它将在本地运行,代码必须在那里执行......这意味着它可以被检查。你所能做的就是让它变得更难。

答案 3 :(得分:0)

您可以加密您的javascript,然后在客户端解密和评估它。如果它是私有应用程序,您可以使用密码进行加密,因此没有密码的任何人都无法对其进行解密。否则你应该让它变得非常复杂。

答案 4 :(得分:0)

除了标准的JS混淆之外,例如,在这里:https://stackoverflow.com/questions/2285593/how-to-sell-and-protect-software-that-has-easily-visible-source-like-javascript  这几乎是不可能做到的。

我倾向于质疑是否真的需要首先保护客户端代码。什么使它如此独特,这是必要的?无论如何,任何类型的敏感数据操作都应该在服务器端完成,因为每种混淆方法都将始终只是不完美的保护。