8

我知道客户端代码必须可以从浏览器中读取,但我想知道(因为我忽略了太多东西)是否有办法混淆最终用户的代码,如果没有,“打包”的最佳实践是什么" javascript 代码。

4

9 回答 9

9

使用YUI Compressor等工具缩小 JS 是一种很好的做法。除非您有特殊需要,否则我不会混淆它。有很多在线混淆器,例如这个

看到这篇文章:http: //developer.yahoo.net/blog/archives/2007/07/high_performanc_8.html

于 2009-04-09T14:51:19.400 回答
4

看看这个

除了挖掘它,我认为你不能真正隐藏 js。这一切都通过用户的浏览器进行,一旦出现,就有很多方法可以看到它。

于 2009-04-09T14:50:33.303 回答
2

请参阅此处获取免费的 Javascript 混淆器。

鉴于这实际上是可能的,如果您打算混淆的原因是为了保护知识产权,那么您可能正试图以错误的方式从您的工作中获取价值。逆转混淆相当容易,您可能会浪费时间维护您的代码。

更多地关注您打算为访问您网站的人提供哪些服务,以使您的网站与竞争对手区分开来

于 2009-04-09T14:52:44.263 回答
0

任何混淆都不会让你的代码真正安全,它可能只会给你一种安全的错觉(参见security by obscurity)。

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

于 2009-04-10T20:41:48.087 回答
0

有一些工具可用于压缩 javascript 代码并使最终用户难以理解。

于 2009-04-09T14:52:46.150 回答
0

有没有理由为什么这对你不起作用?

http://www.javascriptobfuscator.com/

于 2009-04-09T14:53:03.903 回答
0

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

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

于 2009-04-09T16:08:46.490 回答
0

第 1 步:不要。

你必须做很多事情才能达到任何有意义的混淆水平。仅对名称进行混淆是不够的,因为所有标准函数仍然存在(尽管它们可能隐藏在一层较短/混淆的别名中),并且一旦代码格式良好,就很容易得出特定函数的目的再次。任何真正想知道你的 JS 代码做什么的人都可以并且愿意,无论你在他们的浏览器得到它的副本之前对它做了什么。

如果您的 JavaScript 中确实有有价值的业务流程,那么您做错了(tm)。

于 2009-04-09T16:22:19.577 回答
0

可以使用以下工具:

  • YUI Compressor - 需要 Java - 非常好的压缩器

  • Packer - 创建最令人困惑和最小的代码,但脚本的运行速度不如 YUI - 这可以在线使用。选择“Base62 编码”以获得最大效果。

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

  • JSMIN By Douglas Crockford,这个算法非常简单,但还是不错的。旨在与 JSLint 结合使用。

于 2012-08-12T09:57:41.710 回答