active server page技术为应用开发商提供了基于脚本的直观、快
速、高效的应用开发手段,极大地提高了开发的效果。但由于asp脚
本是采用明文(plain text)方式来编写的,所以应用开发商辛苦开发
出来的asp应用程序,一旦发布到运行环境中去后,就很难确保这些
“源代码”不会被流传出去。这样就产生了如何有效地保护开发出来
的asp脚本源代码的需求。
asp运行机制
asp脚本是一系列按特定语法(目前支持vbscript和jscript两种
脚本语言)编写的,与标准html页面混合在一起的脚本所构成的文
本格式的文件。当客户端的最终用户用web浏览器通过internet
来访问基于asp脚本的应用时,web浏览器将向web服务器发出
http请求。web服务器分析、判断出该请求是asp脚本的应用后,
自动通过isapi接口调用asp脚本的解释运行引擎(asp.dll)。
asp.dll将从文件系统或内部缓冲区获取指定的asp脚本文件,接
着就进行语法分析并解释执行。最终的处理结果将形成html格式的
内容,通过web服务器“原路”返回给web浏览器,由web浏览
器在客户端形成最终的结果呈现。这样就完成了一次完整的asp脚本
调用。若干个有机的asp脚本调用就组成了一个完整的asp脚本应
用。
官方加密程序:从微软免费下载到sce10chs.exe 直接运行即可完
成安装过程。安装完毕后,将生成screnc.exe文件,这是一个运行在
dos promapt的命令工具。
运行screnc – l vbscript source.asp destination.asp生成包含密文
asp脚本的新文件destination.asp用记事本打开看凡是“"之
内的,不管是否注解,都变成不可阅读的密文了,但无法加密中文。
几种asp源代码保护方法:
1,“脚本最小化”即asp文件中只编写尽可能少的源代码,实现
商业逻辑的脚本部分被封装到一个com/dcom组件,并在asp脚
本中创建该组件,进而调用相应的方法(methed)即可。应用开发者
动手开发asp脚本应用之前就可按此思路来开发,或者直接用asp
脚本快速开发出原型系统后,针对需要保护、加密的重要脚本用
com/dcom组件来重新开发、实现并替换。
2,“脚本加密”即asp脚本仍直接按源代码方式进行开发,但在
发布到运行环境之前将脚本进行加密处理,只要把加密后的密文脚本
发布出去。即在asp.dll读取脚本这个环节加入密文还原的处理。
实现这种思路的方法有两种:一是自行开发一个isapi的iis过
滤(filter)块,在asp.dll之前勾连(hook)对asp脚本文件的读
取,以便把文件系统读出的密文还原成asp.dll可以解释的明文;
方法二九是直接由asp.dll提供对asp脚本加密处理的支持。微软
在新版本的vbscript.dll jscript.dll中提供这种成为ms script encode
技术的支持。这样,无论是客户端的vbscript jscript(包括wsh脚
本等),还是服务器端的vbscript jscript (即asp脚本)都可以支持
加密处理。
