日期:2012-02-14  浏览次数:20950 次

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脚本)都可以支持
加密处理。