首页 > 教育学习 > 为什么 > 随着大量 HTML5 应用的出现,如何加强对 JavaScript 的源代码的保护?

随着大量 HTML5 应用的出现,如何加强对 JavaScript 的源代码的保护?
2012-01-19 17:48:32   来源:   点击:

    随着大量 HTML5 应用的出现,如何加强对 JavaScript 的源代码的保护?因为用户是可以查看 JavaScript 源代码的,即使是被压缩之后的。

    12 个答案

    • 答案 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。。。最好的办法就是能不用就不用。。。

相关热词搜索:

上一篇:怎样在点点模板上添加代码?
下一篇:iOS或者Andrid从webOS借鉴了什么功能和设计?