4 回答
TA贡献1842条经验 获得超21个赞
混淆:
试试YUI Compressor。它是一个非常受欢迎的工具,由Yahoo UI团队构建,增强和维护。
您也可以使用:
私人字符串数据:
将字符串值保密是一个不同的问题,混淆不会带来太大的好处。当然,通过将您的源代码打包成乱码,缩小的混乱,您可以通过默默无闻来获得轻松的安全性。大多数情况下,您的用户正在查看源,并且客户端上的字符串值是供其使用的,因此通常不需要这种私有字符串值。
如果你真的有一个你从未想让用户看到的价值,你会有几个选择。首先,您可以进行某种加密,在页面加载时解密。这可能是最安全的选择之一,但也可能是许多不必要的工作。您可能可以对某些字符串值进行base64编码,这会更容易..但是真正想要这些字符串值的人可以轻松解码它们。加密是真正阻止任何人访问您的数据的唯一方法,并且大多数人发现它比他们需要的更安全。
边注:
众所周知,Javascript中的混淆会导致一些错误。混淆器正在变得更好一些,但许多服装决定他们从缩小和gzipping中看到足够的好处,并且混淆的额外节省并不总是值得的。如果您正在尝试保护自己的源代码,也许您会认为这是值得的,只是为了让您的代码更难阅读。JSMin是一个很好的选择
TA贡献1805条经验 获得超9个赞
我很惊讶没人提到Google的Closure Compiler。它不只是缩小/压缩,它分析以查找和删除未使用的代码,并重写以实现最大限度的缩小。它也可以进行类型检查,并会警告语法错误。
JQuery最近从YUI Compresser切换到Closure Compiler,看到了“ 坚实的改进 ”
TA贡献1865条经验 获得超7个赞
混淆永远不会真正起作用。对于任何真正想要获取代码的人来说,这只是一个减速带。更糟糕的是,它可以防止用户修复错误(并将修复程序发回给您),并使您更难以诊断现场问题。浪费你的时间和金钱。
与律师讨论知识产权法以及您的法律选择。“开源”并不意味着“人们可以阅读来源”。相反,Open Source是一种特定的许可模式,允许自由使用和修改代码。如果您没有授予此类许可,那么复制您的代码的人将被违反,并且(在世界上大多数地方)您有合法的选择来阻止它们。
您可以真正保护代码的唯一方法是不发货。移动重要的代码服务器端并让您的公共Javascript代码对它进行Ajax调用。
TA贡献1744条经验 获得超4个赞
您可以随心所欲地混淆javascript源代码,但只需要将所有源代码实际运行在客户端计算机上就可以反向工作...我能想到的最佳选择是完成所有处理使用服务器端代码,javascript所做的所有客户端代码都是将处理请求发送到服务器本身。否则,任何人都将始终能够跟踪代码正在执行的所有操作。
有人提到base64来保持字符串安全。这是一个糟糕的主意。Base64可以立即被想要对代码进行反向工程的人员识别。他们要做的第一件事就是取消编码,看看它是什么。
添加回答
举报