扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网 来源:赛迪网安全社区 2007年10月14日
关键字:
在本页阅读全文(共2页)
仿照这个原理,其实你可以自己写出自己的算法来代替escape,不过因为这个部分源代码也是明文,所以其实意义不大,只能唬唬那些利用现成工具解码的人,稍微会编程的人都可以利用你的源代码部分,修改一下输出,得到你的代码明文。
作为全球最大的软件商,微软公司也意识到了脚本的知识产权保护问题,因此在IE5以上的版本里加入了对编码脚本的支持,这里的“编码”和上面所述的略有不同,这是通过微软专门的wse(windows script encoder)进行脚本编码,其范围也不仅仅局限于客户端脚本,它也可以对wsh,甚至服务器端的ASP脚本进行编码,经过编码的脚本看起来是一堆乱七八糟毫无疑义的字符(好像unicode会不经编码原封不动的保留下来),在运行的时候在脚本引擎内部进行解码,由于解码算法是脚本引擎内置的,所以一般人难以解出源代码。另外,由于解码中要进行完整性效验,即使unicode以原码显示出来了也不能被修改,修改哪怕是一个字节,就会使整段代码失效。
这个方法目前看来很安全,还没有现成的工具对其进行破解。但是要知道,这些算法是可逆的,也就是说迟早会有人找出其算法,我甚至猜测script engine本身提供了编码解码的接口,可以直接调用的。解密工具迟早要出来。而且这个加密方法有个很大的缺陷,就是必须要求IE5以上才能用,要知道,IE4的用户不在少数,因此在很大程度上限制了推广使用。
真的没有两全的办法了吗?
写到这里,我自己产生了一个想法:利用随机密匙+固定或随机算法进行加密,只是一时想法,还不成熟,而且也只是可以骗过一般人而已,不妨写下来供参考:
先想一种需要密匙的算法,比如xor,在服务器端写好加密算法,当用户访问此页的时候生成一个随机密匙,将解密算法以及加密后的数据发到客户端页面上,而在之前将此次会话生成的密匙通过某种特别途径发给客户端(比如服务器发来的cookie),然后在客户端读出cookie里的密匙进行实时解密。由于不带过期参数的cookie是存在内存里的,在硬盘里找不到,因此除非用户知道写cookie的那个页面并且察看其http头(同时还要向服务器发去维持本次会话的sessionID以防止密匙改变),否则是无法解密的。由于向客户端发送cookie的页面可以随机(可以在加密页面出现之前的任意页面),而且密匙甚至算法均可随机,找到密匙,算法,数据三者相对应的过程相当之繁琐,可以吓倒不少的人。
这种加密法是否可行还有待探讨,只是我一时想法而已,有空的时候我会试验一下,看看到底能不能用。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。