混淆 JavaScript 代码

信息安全 Web应用程序 javascript 源代码 混淆
2021-08-15 22:07:44

一些 Flash 开发人员害怕 JavaScript。他们的观点:

窃取 JS 源代码毫不费力,只需“查看源代码”并复制即可。是的,您可以反编译 Flash 字节码,但它需要更多的时间和知识。因此,JavaScript 不适合商业软件开发,因为竞争对手会窃取代码并使原开发者停业。

在开发商业 Web 应用程序时,混淆 JavaScript 代码是否有意义?

有没有真正有效的混淆技术?像谷歌这样的大公司是否混淆了他们的网络应用程序代码。例如,Gmail 或 Google Drive 是否受到某种保护?

4个回答

我认为这里问题中的关键词是“害怕”。厌恶是基于恐惧,而不是事实。现实情况是,威胁模型并不是特别现实。这些天来,商业网络软件开发公司几乎普遍使用 JavaScript,无论是混淆还是其他方式,我挑战你,让我找到一个例子,它的 JS 被竞争对手窃取,然后因此被淘汰出局。我很有信心它没有发生,也不太可能发生。

你的第二个问题也是,像谷歌这样的公司会混淆他们的 JavaScript 吗?是的,但不是为了安全!他们混淆以最小化代码的大小,以减少下载大小并最小化页面加载时间。(请参阅Google Closure Compiler。)这不一定是您为了安全而进行混淆的方式,因为唯一的目标是尽量减少必须传递给客户端的字节数。这就是你使用 JavaScript 应该关注的内容,而不用担心是否有人能够阅读它。

不。混淆 Javascript 通常没有任何意义。始终假设您放置在客户端的任何逻辑都可以通过确定的足够攻击轻松获得,无论您如何混淆它。

您的“重要”逻辑应该存储在服务器端。

你似乎已经知道混淆不是真正的保护,所以我不会用默默无闻的方式来教你安全性

有意义的是:将您的竞争代码放在服务器上以保护它,然后尽可能多地混淆客户端代码。诚然,它不会给你太多的安全感,但它肯定会阻止孩子们四处窥探,并且作为安全剧院的一部分,它会产生更强的安全性的印象。Google 正在使用 GMail,Facebook 正在这样做。

请记住,您的代码被反混淆,您仍然可以将其作为构建过程的一部分进行混淆,以使您的客户和用户更快乐。

您可以使用许多工具来实现这一目标:Free Javascript ObfuscatorJScrambler(商业)是我以前使用过的两个工具。

更新:在讨论了DMZ之后,我们得出的结论是,谷歌和 Facebook 正在这样做,但可能只是为了文件大小和性能,似乎没有任何迹象表明它是安全剧院的一部分。

当然,这是毫无根据的恐惧。

Javascript 只是更大生态系统的一部分,更重要的是品牌、网站可用性、网站完整性、响应能力和网络效应。

是的,javascript最小化,优化是好事,但不是因为这些目的。

如果竞争对手窃取了您的代码,您可以在他们的尾巴上合法化,并扼杀他们的声誉,但他们会如此愚蠢(这在他们的网站上也很清楚)?

而且这个论点也适用于 html 和图像,你显然需要关闭你的整个网站,因为人们可以窃取它。

就我个人而言,我只是混淆以隐藏我的 xxxxpy 代码;)并删除评论大声笑。