JavaScript代码压缩的安全性如何?

7

长期以来,我一直认为我们压缩JavaScript/CSS的主要原因之一是为了提高性能,并使其难以逆向工程。但是我的一个朋友向我展示了如何轻松地反转压缩后的JavaScript和CSS代码,这让我开始怀疑这种做法的实际效果。

那么,除了性能提升之外,还有什么其他保护JavaScript不被盗用的方法吗?


1
据我所知,这只是性能问题,因为文件大小更小。 - Huangism
2
“压缩的意义是什么?”和“有没有办法保护JS不被简单地盗取?”这两个问题是非常不同的,你想问哪一个? - user395760
7
没有别的原因。代码压缩仅出于网络传输性能方面的考虑。 - Niet the Dark Absol
1
较少的带宽使用对大多数人来说已经足够好了。只要您没有混淆变量名称,反向缩小将是可能的,但您仍然可以得到一些代码,但跟踪它将是一件痛苦的事情。 - Karl-Johan Sjögren
1
防止人们从您的网站窃取JS的唯一方法是不使用任何JS。 - Andy
上面的评论者过于简单化了。代码混淆是一种常见的做法,可以使恶意行为者更难破解代码。JavaScript代码压缩就是一个例子。 - Elliott Beach
2个回答

6
Javascript压缩主要是为了提高性能。压缩后,脚本大小通常会减少超过25%。此外,一些压缩器/编译器也会对您的代码进行混淆,将函数和变量重命名为不太明显的名称。
正如您指出的那样,它总是可以被取消压缩或美化,但由于Javascript是一种非编译的客户端语言,因此您无法采取太多措施来保护您的javascript。
请参见有关javascript混淆的this链接。
如果您拥有专有代码或真正不希望用户看到的代码,则必须将其保留在服务器端。考虑将其移动到服务器端语言(例如PHP、Python、C等)并通过Web服务公开函数。

2

无法防止JavaScript直接从您的网站被窃取。当有人访问包含JavaScript代码的HTML页面或文件并加载它时,它就会被“窃取”。从安全角度来看,缩小代码只会使您的代码对普通浏览器进行混淆。它的主要目的是为了提高性能。

经验法则:如果您不希望用户访问它,请不要将其发送到客户端/浏览器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接