我正在寻找有关如何保护/保护我的Web应用程序代码不被查看/被盗/使用的最佳做法。我也在研究如何限制可见代码的数量,即服务器中的内容以及客户端中的内容?
我是网络开发人员的新手,所以我只是在学习像JavaScript这样的东西,这是非常难以保护的。
我已经阅读了这个帖子how to protect jsp pages from being open source并重复了这些帖子,但这些都是较旧的问题。
我很好奇如果我们必须使用JavaScript / jQuery,哪些方法很好?如上所述,服务器上应该有哪些逻辑,客户端应该是什么? node.js是否会做任何事情来阻止代码被显示,或者它只向客户端提供js(或者完全做其他事情)?
我已经阅读并发现了一些看似不错的应用程序,但是很多人都说“不可能100%保护Javascript代码。”
https://github.com/jxcore/jxcore-release
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中的元素绘制。最终这会增长,所以我总是担心。所以我很好奇,为了确保他们的应用程序代码尽可能受到保护,应采取哪些最佳实践?
关于什么代码应该去哪里(或者是基于偏好的最佳实践?有什么最佳实践?我会假设会有一些有用的提示)。
答案 0 :(得分:0)
我也陷入了类似的境地。这是我最终采用的。决定的依据主要归结为以下标准
1.易于维护 - 仅仅因为我必须保护,不应该影响我的开发版本。此外,它应该更容易发布补丁。支持跨平台安装和升级
2.通过持续集成/部署自动化保护源的过程
3.解码源代码并理解它的时间 - 任何熟练的专业人员都不会花费大量精力解密源代码,因为他们可以使用那段时间构建源代码。花费大量时间进行解密的其他人在指导产品路线图方面没有那么多技能可以与我们竞争。
现在回答问题
1.客户端保护:由于代码在浏览器中运行而我们对日志文件不感兴趣,因此经过验证的脚本连接和混淆(uglify)方法就足够了。