-
答案 1:
没有用。用 Chrome 去装个这个插件 [1],然后打开知乎的 JS [2] 看看。JS 混淆器(比如 [3])也就能重新命名一下变量、函数什么的。逆向工程很容易。JS 虚拟机短期内不会出现。保护好你的服务器端才是王道。[1]:https://chrome.google.com/webstore...[2]:static.www.zhihu.com/static...[3]:code.google.com/closure/ -
答案 2:
closure compiler是基于语法分析的混淆(准确的说是编译)。用它基本就够了,被反向后也很难看懂。前端代码没必要考虑保护,混淆或压缩纯粹是为了性能。 -
答案 3:
可以混淆和压缩 -
答案 4:
我觉得js从诞生起就不应该作为一种被保护的代码,因此你才会看到大量的js库都以开源方式发布,需要保护的代码是服务端的代码(防止你不想要的漏洞挖掘行为)和服务器的安全。
举个不恰当的例子,优秀的JS代码之于盗取代码的人而言就像名画之于临摹画作的人,你需要做的是把画做好就行,别人临摹反而是对你“画作”的一种肯定。因此,防止别人盗取要做的不是把画给抹掉,而是用法律武器(如果你想非开源并保护你代码版权的话)。
而虚拟机的话,js执行的宿主环境浏览器本来就可以看做一个虚拟机,除非把js弄成编译型语言,否则并无法做到源代码直接查看,但是这又会丧失了js本身优秀的动态特性
同样作为编译型语言的C# java等依然可以反编译出非常易读的代码(例如C#的反编译工具reflector),就算是C语言在编译后也可以反汇编为汇编代码,只要你有恒心,任何逆向工程都是可以的。因此,只要代码是在本地执行的,那就不存在绝对的代码保护。
js现有的保护机制主要为混淆合并等,但是更多这种工具(例如closure compiler)的初衷是用于减小js体积而不是用于混淆代码,而某些混淆加密工具反而会增大js体积,这在实践中是不可取的。
-
答案 5:
压缩只是减少IO的方式,对代码保护的作用应该不大。 -
答案 6:
在一个开源时代,有必要保护吗? -
答案 7:
发到客户端的东西不用考虑保密的问题。考虑等于白考虑 -
答案 8:
环境如此,再优秀的"表现"都会被拷贝,没有完善的知识产权保护体系,保护代码意义不大 -
答案 9:
目前貌似保护不鸟,使用firefox可以直接查看引用的JS文件,就算压缩也没用,现在可以直接解压缩。 -
答案 10:
只能压缩加混淆 -
答案 11:
查看本页的 Javascript 并分析之,谢谢。 -
答案 12:
html5本身的标签貌似强大了好多。。。要保护js。。。最好的办法就是能不用就不用。。。
随着大量 HTML5 应用的出现,如何加强对 JavaScript 的源代码的保护?
2012-01-19 17:48:32 来源: 点击:
相关热词搜索:
上一篇:怎样在点点模板上添加代码?
下一篇:iOS或者Andrid从webOS借鉴了什么功能和设计?