我知道客户端代码必须可以从浏览器中读取,但我想(如果有太多我忽略的东西),如果有方法混淆代码给最终用户,如果不是什么是最佳实践“打包”javascript代码。
答案 0 :(得分:8)
优良作法是使用YUI Compressor等工具缩小JS。除非你有特殊需要,否则我不会混淆它。有很多在线混淆器,如this one
请参阅此文章:http://developer.yahoo.net/blog/archives/2007/07/high_performanc_8.html
答案 1 :(得分:4)
检查this。
除了贬低它,我认为你不能真正隐藏js。这一切都是用户的浏览器,有很多方法可以看到它。
答案 2 :(得分:2)
有关免费Javascript Obfuscator的信息,请参阅here。
鉴于它实际上是可能的,如果您打算混淆的原因是为了保护知识产权,那么您可能试图以错误的方式从您的工作中获取价值。反转混淆是相当容易的,你可能会浪费时间来维护你的代码。
更多地关注您打算为访问您网站的用户提供哪些服务,以便将您的网站与竞争对手区分开来
答案 3 :(得分:0)
有tools可用于压缩javascript代码并使最终用户难以理解。
答案 4 :(得分:0)
为什么这不会为你做这个伎俩?
答案 5 :(得分:0)
请勿在javascript中添加任何敏感信息或个人信息。
花些时间保证服务器上的数据安全。
答案 6 :(得分:0)
第1步:不要。
您必须做很多事情才能达到任何有意义的混淆程度。单独模糊名称是不够的,因为所有标准函数仍然存在(尽管它们可能隐藏在一层较短/混淆的别名中),并且一旦代码格式化得很好就可以很容易地得出特定函数的用途。再次。任何真正想知道你的JS代码能做什么的人,无论你在浏览器获得它的副本之前做了什么都会这样做。
如果真正在您的JavaScript中拥有有价值的业务流程,那么您就是在做错了(tm)。
答案 7 :(得分:0)
不会混淆是为了让您的代码真正安全,它可能只会给您一种虚假的安全错觉(参见security by obscurity)。
如果您确实需要保密代码的某些部分,请考虑将敏感部分拉入服务器端脚本并对脚本进行(例如)AJAX调用。特别是随着JSON的出现,与服务器端脚本的通信变得前所未有的简单。
答案 8 :(得分:0)
可以使用以下工具:
YUI Compressor - 需要Java - 非常好的压缩器
Packer - 创建最混乱,最小的代码,但脚本的运行速度不如YUI - 这可以在线使用。选择“Base62 encode”以获得最大效果。
Dojo Compressor我从来没有使用过这个,但它位于首位。它还需要Java。
JSMIN道格拉斯·克罗克福德(Douglas Crockford),这个有一个非常简单的算法,但它仍然很好。可以与JSLint结合使用。