【发布时间】:2010-10-18 14:04:29
【问题描述】:
我知道客户端代码必须可以从浏览器中读取,但我想知道(因为我忽略了太多东西)是否有办法将代码混淆到最终用户,如果没有,最佳实践是什么“打包” javascript 代码。
【问题讨论】:
标签: javascript html hide
我知道客户端代码必须可以从浏览器中读取,但我想知道(因为我忽略了太多东西)是否有办法将代码混淆到最终用户,如果没有,最佳实践是什么“打包” javascript 代码。
【问题讨论】:
标签: javascript html hide
签出this。
除了挖掘它,我认为你不能真正隐藏 js。这一切都通过用户的浏览器进行,一旦出现,就有很多方法可以看到它。
【讨论】:
最好使用YUI Compressor 之类的工具来缩小您的JS。除非您有特殊需要,否则我不会混淆它。网上有很多混淆器,比如this one
见这篇文章:http://developer.yahoo.net/blog/archives/2007/07/high_performanc_8.html
【讨论】:
请参阅here 以获取免费的 Javascript 混淆器。
鉴于这实际上是可能的,如果您打算混淆的原因是为了保护知识产权,那么您可能试图以错误的方式从您的工作中获取价值。逆转混淆相当容易,您可能会浪费时间维护您的代码。
更多地关注您打算向访问您网站的人提供哪些服务,以使您的网站与竞争对手区分开来
【讨论】:
tools 可用于压缩 javascript 代码并使最终用户难以理解。
【讨论】:
这对你不起作用有什么原因吗?
【讨论】:
不要将任何敏感或个人信息放入 javascript。
花时间保护服务器上的数据安全。
【讨论】:
第 1 步:不要。
您必须做很多事情才能达到任何有意义的混淆程度。仅对名称进行混淆是不够的,因为所有标准函数仍然存在(尽管它们可能隐藏在一层较短/混淆的别名中),并且一旦代码格式良好,就很容易得出特定函数的目的再次。任何真正想知道你的 JS 代码做什么的人都可以并且愿意,无论你在他们的浏览器获得副本之前对它做了什么。
如果你真的在你的 JavaScript 中有有价值的业务流程,那么你做错了(tm)。
【讨论】:
没有任何混淆可以保证您的代码真正安全,它可能只会给您带来安全的错误错觉(参见security by obscurity)。
如果您确实需要对代码的某些部分保密,请考虑将敏感部分拉入服务器端脚本并对脚本进行(例如)AJAX 调用。尤其是随着 JSON 的出现,与服务器端脚本的通信从未如此简单。
【讨论】:
可以使用以下工具:
YUI 压缩器 - 需要 Java - 非常好的压缩器
Packer - 创建最令人困惑和最小的代码,但脚本的运行速度不如 YUI - 虽然这可以在线使用。选择“Base62 编码”以获得最大效果。
Dojo Compressor 我从来没有使用过这个,但它在顶级列表中。它还需要 Java。
JSMIN 作者 Douglas Crockford,这个算法非常简单,但仍然很好。旨在与 JSLint 结合使用。
【讨论】: