2009-04-09 82 views
8

我明白,客户端代码必须可以从浏览器读取,但我想知道(因为有太多的东西,我忽略),如果有方法混淆到代码的最终用户,如果不是最佳做法是什么“打包”javascript代码。是否可以隐藏或加扰/混淆网页的JavaScript代码?

+0

Dup的:http://stackoverflow.com/questions/599911/what-do-you-use-to-minimize-and-compress-javascript-libraries – 2009-04-09 16:27:18

+0

Dup的:http://stackoverflow.com/问题/ 702907/what-are-good-css-and-js-minimizers-for-production-code – 2009-04-09 16:27:49

+0

http://stackoverflow.com/a/17468822/2450730 – cocco 2013-07-04 11:53:46

回答

4

检查this了。

除了mining它,我不认为你真的可以隐藏js。这一切都发生在用户的浏览器上,并且有很多方法可以在用户浏览器中看到它。

2

一个免费的JavaScript混淆见here

鉴于事实上有可能,如果您打算混淆的原因是为了保护知识产权,您可能试图以错误的方式从工作中获得价值。反转混淆非常容易,而且您可能会浪费时间维护代码。

详细了解有关服务,您打算提供给那些谁访问您的网站为手段,以区别于竞争对手网站焦点

0

tools可能被用来压缩JavaScript代码,并使其难以结束用户了解。

0

不要把任何敏感信息或个人信息的JavaScript。

花费您的时间保证您的数据在服务器上的安全。

0

步骤1:不要。

为了达到任何有意义的混淆程度,你将不得不做很多事情。仅仅混淆名称是不够的,因为所有标准函数仍然存在(尽管它们可能被埋在一层较短/混淆的别名中),并且一旦代码格式化得很好,推导出特定函数的目的很容易再次。任何真正想知道你的JS代码都能做什么的人,无论你在浏览器获得它的副本之前做了什么,都可以。

如果你真的在你的JavaScript中有宝贵的业务流程,那么你做错了(tm)。

0

没有混淆会使您的代码真正安全,它可能会给您带来虚假的安全错觉(参见security by obscurity)。

如果您确实需要保留部分代码的秘密,请考虑将敏感部分拉入服务器端脚本并对脚本进行(比如说)AJAX调用。特别是随着JSON的出现,与服务器端脚本的通信从未如此简单。

0

它可以使用以下工具:

  • YUI压缩机 - 需要Java - 很不错的压缩机

  • 帕克 - 创建最混乱,以及最小的代码,但脚本不运行与YUI一样快 - 但可以在线使用。选择'Base62编码'以获得最大效果。

  • Dojo Compressor我从来没有使用过这个,但它在顶级列表中。它也需要Java。

  • JSMIN道格拉斯克罗克福德,这个有一个非常简单的algorythm,但它仍然很好。意味着与JSLint结合使用。