网页的javascript代码是否可以隐藏或混淆/模糊化?

9

我知道客户端代码必须可读,但是我想知道(因为有太多的事情我不知道),是否有办法对最终用户进行代码混淆,如果不行的话,最佳实践是如何“打包” JavaScript 代码。


复制链接:https://dev59.com/XXRB5IYBdhLWcg3wgXhV - Crescent Fresh
复制链接:https://dev59.com/7HRB5IYBdhLWcg3wJkhC - Crescent Fresh
https://dev59.com/03VC5IYBdhLWcg3wvT_g#17468822 - cocco
9个回答

9

1
感谢 @copa017 修复链接! - Chris Ballance

4

请查看这里

除了压缩,我认为你无法真正隐藏js。所有内容都会传输到用户的浏览器,一旦到达那里,就有很多方法可以查看它。


没错,你不能隐藏它,但混淆和/或缩小它会使人类阅读变得更加困难。 - Chris Ballance
为什么你想要隐藏JavaScript不让用户看到呢?如果你在其中有某种业务逻辑,那么你会面临更大的问题。 - Greg Noe
http://malzilla.sf.net/ 这个工具很容易使用,可以使用非标准的浏览器,将混淆的JS代码以非混淆的形式输出。无法隐藏发送给客户端的任何内容。 - ephemient
1
@Chris -- 还有一些“美化工具”可用于对抗这种情况。-- 试试 http://jsbeautifier.org/ - Jonathan Lonowski
我自己也很懒。如果我想找出某个东西的工作原理,我会使用Firebug来检查它 - 如果它被压缩了,我通常就会停在那里。Google或SO会比尝试解决压缩的js更快地得到答案。 - Brian
@Brian,这就是我想要的。如果你想阻止重用你的JS,你可以混淆它。 - Chris Ballance

2

点击这里获取免费的JavaScript混淆器。

如果您打算进行代码混淆以保护知识产权,那么您可能是在错误的方向上从您的工作中获得价值。很容易破解混淆代码,而且您可能会浪费时间来维护它。

更应该关注为访问您网站的人提供什么样的服务,以区别于竞争对手。


我不会使用这个,一些安全应用程序会将类似于这样的JavaScript视为潜在的黑客攻击并阻止它。 - Andrew Bullock
我从未亲自使用过它 :) 我也绝不想混淆我的JavaScript - Mystic

0

工具可以用于压缩JavaScript代码,使其难以被最终用户理解。


0

0

不要在 JavaScript 中放置任何敏感或个人信息。

花时间保护服务器上的数据安全。


0

步骤1:不要这样做。

要实现任何有意义的混淆水平,您需要做很多工作。仅仅混淆名称是不够的,因为所有标准函数仍然存在(尽管它们可能被埋在更短/混淆的别名层中),并且一旦代码再次格式化,推导出特定函数的目的就很容易了。无论您在浏览器获取副本之前对其进行了什么处理,真正想知道您的JS代码执行什么操作的人都可以轻松地了解到。

如果您的JavaScript确实具有有价值的业务流程,则您正在错误地使用它。


0

没有混淆能够真正保护您的代码安全,它可能只会给您虚假的安全感(参见安全性通过混淆)。

如果您确实需要保密部分代码,请考虑将敏感部分提取到服务器端脚本中,并进行(例如)AJAX调用。特别是随着JSON的出现,与服务器端脚本的通信变得更加容易。


0

可以使用以下工具:

  • YUI Compressor - 需要Java - 压缩效果非常好

  • Packer - 创建最混乱和最小的代码,但脚本运行速度不如YUI快 - 可以在线使用。选择“Base62编码”以达到最大效果。

  • Dojo Compressor - 我从未使用过这个,但它在排名榜上。它也需要Java。

  • JSMIN - Douglas Crockford开发的,这个压缩器有一个非常简单的算法,但仍然很好。建议与JSLint一起使用。


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