混淆Angular JS控制器代码

时间:2017-01-19 08:15:40

标签: gulp obfuscation minify uglifyjs source-code-protection

我想Obfuscate + Minify我的Angular JS代码,以便不公开它,如果有人试图解码它,那么就把它变成障碍。代码正在运行服务器。

注意:将来我们计划将 http 转移到 https

我见过许多选项,例如 Gulp,Google Closure Compiler,UglifyJS 等许多工具,用户可以下载和混淆代码,如 jsob,javascript obfuscate

我需要建议并提出一些问题。

  1. 除了加密之外,最好的方法是什么?
  2. 如果我转到https,我还需要混淆吗?
  3. 有利有弊的有哪些更好,更简单的方法?
  4. 如果我使用像JavaScript混淆器这样的工具,那么它的优点和缺点是什么?我能把它拿回去,我的意思是解码?
  5. 或者如果有人能够查看gulp文件,那么获取我的代码会很容易吗?

2 个答案:

答案 0 :(得分:7)

1 - 这实际上取决于你想要实现的目标。如果你真的想保护你的代码隐藏你的业务逻辑,你应该寻求一个有弹性的解决方案,而不是依赖于一个很容易打败的缩小或混淆工具。

2 - Https只是意味着您的浏览器和网站之间的通信是加密的。 Htt也可以解密,因此应用其他保护机制是有意义的

4 - JavaScript Obfuscator和其他几个工具不保护代码,它们是简单的混淆器,所以它们可以在几分钟内轻松反转,这就是为什么有些人认为它不值得保护代码的原因客户端。实际上,您可以使用简单的JS优化器获取大部分原始代码。 ClosureCompiler和UglifyJS正是这种不同的方法,它们减小了代码的大小并对其进行了优化,它们不提供代码保护。

3,5 - 我发现this blog post from js13kGames competition creator对我的案子非常有用。他提出了一个似乎更合适的解决方案 - Jscrambler。 IMO你应该试一试,因为它结合了代码转换与反调试和防篡改功能。例如,您还可以将代码锁定到预定义的域列表或设置到期日期以提供可过期的演示。也许它也适合你的情况,因为它支持Angular。

答案 1 :(得分:0)

我使用this answer找到了一个很好的解决方案。 如果使用隐式anotation,请首先使用gulp-uglify在uglify进程中不丢失服务名称。