保护Web应用程序源代码的最佳实践?

时间:2014-12-08 22:59:49

标签: javascript jquery security web-applications web

我正在寻找有关如何保护/保护我的Web应用程序代码不被查看/被盗/使用的最佳做法。我也在研究如何限制可见代码的数量,即服务器中的内容以及客户端中的内容?

我是网络开发人员的新手,所以我只是在学习像JavaScript这样的东西,这是非常难以保护的。

我已经阅读了这个帖子how to protect jsp pages from being open source并重复了这些帖子,但这些都是较旧的问题。

我很好奇如果我们必须使用JavaScript / jQuery,哪些方法很好?如上所述,服务器上应该有哪些逻辑,客户端应该是什么? node.js是否会做任何事情来阻止代码被显示,或者它只向客户端提供js(或者完全做其他事情)?

我已经阅读并发现了一些看似不错的应用程序,但是很多人都说“不可能100%保护Javascript代码。”

https://github.com/jxcore/jxcore-release

https://jscrambler.com/en/

http://docs.sonhlab.com/protect-javascript-from-copying/

https://developers.google.com/closure/?csw=1

这些都不错吗? jscrambler值钱吗?

我也很好奇是什么其他代码(除了HTML和CSS)可供人们在客户端上查看?

我还想解释一下我正在努力开发的应用程序。我正在开发一个使用SVG在屏幕上绘制形状的应用程序。从那里我有菜单选项来更改对象,即,而不是颜色,切换元素与其提供的图像。我希望这是完全AJAX并在单击菜单时立即更改。我正在使用jQuery,并通过我服务器上的JSON读取我的数据。

最初我正在使用JSP / Servlets,但我仍然需要通过SVG创建数据并使用jQuery和AJAX做事情,所以我相信这仍然会有可见的代码。

我使用Apache Shiro保护我的应用程序以进行身份​​验证和授权,但我也会为人们设置一个来宾帐户来试用该产品,这样就限制了我对源代码的安全性,如果有人可以的话查看试用帐户。

我的大多数代码都不是jQuery / JavaScript中的元素绘制。最终这会增长,所以我总是担心。所以我很好奇,为了确保他们的应用程序代码尽可能受到保护,应采取哪些最佳实践?

关于什么代码应该去哪里(或者是基于偏好的最佳实践?有什么最佳实践?我会假设会有一些有用的提示)。

1 个答案:

答案 0 :(得分:0)

我也陷入了类似的境地。这是我最终采用的。决定的依据主要归结为以下标准 1.易于维护 - 仅仅因为我必须保护,不应该影响我的开发版本。此外,它应该更容易发布补丁。支持跨平台安装和升级 2.通过持续集成/部署自动化保护源的过程 3.解码源代码并理解它的时间 - 任何熟练的专业人员都不会花费大量精力解密源代码,因为他们可以使用那段时间构建源代码。花费大量时间进行解密的其他人在指导产品路线图方面没有那么多技能可以与我们竞争。
现在回答问题 1.客户端保护:由于代码在浏览器中运行而我们对日志文件不感兴趣,因此经过验证的脚本连接和混淆(uglify)方法就足够了。

  1. 服务器端保护:仅当您执行许可证销售或部署在客户站点中时才需要这样做(否则(平台即服务))您将保护对这些文件的访问。因此,当需要时,因为我们也会对日志文件感兴趣,最好的选择是使用exe。最接近NodeJS平台创建的东西"喜欢" exe是EncloseJS。这里的问题是未经优化的代码,紧密耦合的nodejs版本等等。但是,我们通常不会在我们的架构中相互交换?另一个选择是JXCore。我无法获得足够的文档,因为大多数基于jxcore.com的文档链接都在破坏。它加密源代码并创建包。我们通过jxcore执行我们的nodejs app,它在执行代码之前解密代码。问题是如何在解密时存储和检索加密密钥,因为它们采用对称加密。 (我不太确定)。