为了账号安全,请及时绑定邮箱和手机立即绑定

如何混淆(保护)JavaScript?

如何混淆(保护)JavaScript?

摇曳的蔷薇 2019-05-23 13:02:59
如何混淆(保护)JavaScript?我想创建一个非开源的JavaScript应用程序,因此我希望学习如何模糊我的JS代码?这可能吗?
查看完整描述

4 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

混淆:

试试YUI Compressor。它是一个非常受欢迎的工具,由Yahoo UI团队构建,增强和维护。

您也可以使用:

私人字符串数据:

将字符串值保密是一个不同的问题,混淆不会带来太大的好处。当然,通过将您的源代码打包成乱码,缩小的混乱,您可以通过默默无闻来获得轻松的安全性。大多数情况下,您的用户正在查看源,并且客户端上的字符串值是供其使用的,因此通常不需要这种私有字符串值。

如果你真的有一个你从未想让用户看到的价值,你会有几个选择。首先,您可以进行某种加密,在页面加载时解密。这可能是最安全的选择之一,但也可能是许多不必要的工作。您可能可以对某些字符串值进行base64编码,这会更容易..但是真正想要这些字符串值的人可以轻松解码它们。加密是真正阻止任何人访问您的数据的唯一方法,并且大多数人发现它比他们需要的更安全。

边注:

众所周知,Javascript中的混淆会导致一些错误。混淆器正在变得更好一些,但许多服装决定他们从缩小gzipping中看到足够的好处,并且混淆的额外节省并不总是值得的。如果您正在尝试保护自己的源代码,也许您会认为这是值得的,只是为了让您的代码更难阅读。JSMin是一个很好的选择


查看完整回答
反对 回复 2019-05-23
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我很惊讶没人提到Google的Closure Compiler。它不只是缩小/压缩,它分析以查找和删除未使用的代码,并重写以实现最大限度的缩小。它也可以进行类型检查,并会警告语法错误。

JQuery最近从YUI Compresser切换到Closure Compiler,看到了“ 坚实的改进 ”


查看完整回答
反对 回复 2019-05-23
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

混淆永远不会真正起作用。对于任何真正想要获取代码的人来说,这只是一个减速带。更糟糕的是,它可以防止用户修复错误(并将修复程序发回给您),并使您更难以诊断现场问题。浪费你的时间和金钱。

与律师讨论知识产权法以及您的法律选择。“开源”并不意味着“人们可以阅读来源”。相反,Open Source是一种特定的许可模式,允许自由使用和修改代码。如果您没有授予此类许可,那么复制您的代码的人将被违反,并且(在世界上大多数地方)您有合法的选择来阻止它们。

您可以真正保护代码的唯一方法是不发货。移动重要的代码服务器端并让您的公共Javascript代码对它进行Ajax调用。

请在此处查看关于混淆器的完整答案。


查看完整回答
反对 回复 2019-05-23
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

您可以随心所欲地混淆javascript源代码,但只需要将所有源代码实际运行在客户端计算机上就可以反向工作...我能想到的最佳选择是完成所有处理使用服务器端代码,javascript所做的所有客户端代码都是将处理请求发送到服务器本身。否则,任何人都将始终能够跟踪代码正在执行的所有操作。

有人提到base64来保持字符串安全。这是一个糟糕的主意。Base64可以立即被想要对代码进行反向工程的人员识别。他们要做的第一件事就是取消编码,看看它是什么。


查看完整回答
反对 回复 2019-05-23
  • 4 回答
  • 0 关注
  • 1121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信