一聚教程网:一个值得你收藏的教程网站

热门教程

web源代码的保护

时间:2022-06-30 11:04:50 编辑:袖梨 来源:一聚教程网

    这里的所谓"web源代码",指的是客户端的诸如html, javascript之类的东东,当你辛辛苦苦写出来一个web应用程序时,可能希望自己的劳动成果不被别人任意剽窃修改,但是这些东西如果不加处理,很容易被人copy。其实说实话,我个人认为,作为描述性的语言,web源代码没有经过编译,也就是说,无论怎么加密,它在客户端都会最终以源代码形式出现,要绝对的防止被察看是不可能的。但是,我们还是要讨论这个问题,因为虽然没有绝对,但是相对比较安全就好了,正如系统的安全没有绝对,只有相对一样。只要能让绝大多数人束手无策,我们的目的也就达到了。
    首先,禁止右键是一个比较常见的方法,这无论如何是不能彻底阻止用户察看源代码,但是既然无法防止用户察看代码,就只能把代码加工,让人看了也无法理解其意义。
    一个比较经典而有效的方法是利用的js的escape方法,将源代码经过escape编码后,大部分文字被转换成了型如%xx的编码,unicode字符被转换成%uxxxx格式,于是看起来一片混乱。使用的时候先将这段编码作为数据,利用unescape转换回原貌,再用js写进需要的位置,于是便可正常使用了。
    这个方法原理简单,而且可以反复调用,将源代码经过数层加密(将解密的程序本身也作为源代码进行加密),已经足以让大部分的人摸不着头脑了。他的缺点是编码效率不高,经过编码后数据量增加很多。而且这种编码要解也很容易。
    仿照这个原理,其实你可以自己写出自己的算法来代替escape,不过因为这个部分源代码也是明文,所以其实意义不大,只能唬唬那些利用现成工具解码的人,稍微会编程的人都可以利用你的源代码部分,修改一下输出,得到你的代码明文。
    作为全球最大的软件商,微软公司也意识到了脚本的知识产权保护问题,因此在ie5以上的版本里加入了对编码脚本的支持,这里的“编码”和上面所述的略有不同,这是通过微软专门的wse(windows script encoder)进行脚本编码,其范围也不仅仅局限于客户端脚本,它也可以对wsh,甚至服务器端的asp脚本进行编码,经过编码的脚本看起来是一堆乱七八糟毫无疑义的字符(好像unicode会不经编码原封不动的保留下来),在运行的时候在脚本引擎内部进行解码,由于解码算法是脚本引擎内置的,所以一般人难以解出源代码。另外,由于解码中要进行完整性效验,即使unicode以原码显示出来了也不能被修改,修改哪怕是一个字节,就会使整段代码失效。

热门栏目