通行证: 用户 密码
域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏
热门:qq挂机,asp,php,jsp,xml
,sql,.net,编程 程序 网页图象
首页>网络编程>asp专区>正文 中国黑客群攻击美政府网站 拿到部   微软计划开放office文件格式 消除   腾讯联合八部门严厉打击挂机网站   神六载人飞行圆满成功   美国会要求nasa彻底完成空间站建   google中国研究院有望落户清华   深度分析:论雅虎中国的夭折和阿   神六可能于10月13日上午11点发射   盖茨继续当全美首富   adobe ceo痛斥微软 称其管理层从   
热 点 排 行
dll文件下载
qq挂机的n种快速方法
长白山天池怪兽再现 一分钟
腾讯qq调整升级条件 不再诱
ape歌曲的播放、转换和刻录
新开放qq免费挂级网站
qq挂级程序,qq免费挂机源程
刘亦菲 变性人、堕胎,自称
photoshop通道抠图:给秀发
免费把qq炫铃设为本机qq的
用通通通作代理在局域网上
用6位qq注意啦,免费领取6位
超级女声总决赛 现场实况(
用nero制作win98多功能启动
亲身体验!让桌面不再粗糙
推 荐 新 闻
中国黑客群攻击美政府网站
bittorrent被好莱坞招安盗
网站建设中,关键词选择技
神六载人飞行圆满成功
国庆长假上网慎防“移动杀
连环起诉google 传统媒体欲
最强秘籍 ie7最新使用技巧
神六完成总装可接航天器 外
adobe ceo痛斥微软 称其管
微软急调张亚勤回中国 千里
微软宣布重大重组方案 将划
腾讯qq 2005 beta3火热发布
腾讯扩张路线图曝光 陈天桥
腾讯拍拍网正式吹响进军c2
第五届“西湖论剑”文字实
相 关 新 闻
首页>网络编程>asp专区>正文

asp作品保护方案


http://www.iyit.net  日期:2005-11-24 17:25:57  来源:易特网络技术  点击:
 自从asp(active server pages)问世以来,因其可以创建健壮易于维护、与平台无关的应用系统,asp技术受到了越来越多网络程序员的喜爱,使用asp从事web开发的人也越来越多。但asp只是一种非编译型的、在服务端运行的脚本语言,采用明文(plain text)方式来编写,即使采用了asp加密程序对asp源码进行加密,也不一定能保证发布到运行环境中去的asp应用程序不被非法拷贝。对于高权限的管理员,可以轻而易举从服务器端拷贝出asp程序应用到别的非授权网站。这样给asp应用商业化带来了一定的困难。如何有效保护开发出来的asp程序,本文基于磁盘序列号产生的随机性,结合微软官方免费提供的asp脚本加密程序screnc.exe,很好地解决了这个问题。 
    磁盘序列号,简称磁盘id,是对磁盘进行格式化时随机产生的磁盘标识信息,是一个卷序列号。同一机器两次格式化随机产生固定格式的序列号相同几率几乎为零, dos的后期版本和windows、winnt均采用了这种磁盘标识方式,因而磁盘序列号常被运用用于商业化软件进行加密使用。从windows9.x切换到ms-dos方式,键入dir命令后回车,屏幕出现当前卷标序列号信息,这个类似"0a48-1cd7"的序列号是一个16进制数。一些限期使用的软件,在使用期限到了之后,会要求使用者在线申请新的授权序列号(使用许可)。这种授权序列号相当一部分是采用了静态磁盘序列号结合时间产生的。安装完毕之后的软件,程序即使被非法拷贝到非初始安装环境中,也不能使用。 
上述思想用vc、vb及deliphi编程语言都容易实现,那么,在asp中又如何实现呢?vbscript作为一种健壮的、安全的用户语言,是受客户机系统限制的,不能处理客户机上api的调用,也不能直接操纵客户机上的文件和文件系统之外的控件。因而本文采用vbscript并结合asp内置组件filesystem来实现上述思想。 以下程序根据具体情况略加修改,可以应用于实际的asp应用系统。 
作为讲解实例,本文用到access数据库安全机制,实际应用中,可以用其它格式的文件存放的数据。为便于阐述,我们先建一个access数据库id.mdb(密码为"kxj"),内建一个driveinfo表,数据结构如下: 
id(自动编号) ;
serno(文本,12,磁盘序列号(10进制)) ;
wrimark(数字,1,写盘标志,)。

说明 
wrimark 值为0代表合法用户未安装系统,值为1代表该系统已安装。当值为1且序列号与当前盘不符时,则判定为非法拷贝用户。 
初始化时先定义一个新记录,各字段初始值分别为1,12345678,0。 
在同一目录下,例如c:\interpub\wwwroot下,放置首页default.asp,合法用户首页success.asp,非法安装用户提示页fail.htm及id.mdb序列号存放库。 
各asp文件的编写操作如下: 
1、用frontpage(或notepad),新建一个asp文件default.asp,录入以下程序代码: 
<html>
<head>
<title>sample</title>
</head>
<% dim conn,fs,f
set conn = server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=;pwd=kxj;dbq="&server.mappath("id.mdb")
set fs=server.createobject("scripting.filesystemobject")
testdrive=server.mappath("/driveinfo.asp")
’通过mappath获得当前盘盘符
testdrive=left(testdrive,3)
set f=fs.getdrive(testdrive)
’调用getdrive方法,将驱动器赋予一个变量
mysql="select * from driveinfo where id=1" 
set rscheck = server.createobject("adodb.recordset")
rscheck.open mysql,conn,1,1
fser=trim(f.serialnumber)
’获得当前盘序列号
strserno=trim(rscheck.fields("serno"))
strmark=rscheck.fields("wrimark")
if strserno<>fser and strmark=0 then
’若是首次安装,则置写盘标志为1
session("pass")=true
’定义用户session,并置为全局asp文档标识变量
set rsmain = server.createobject("adodb.recordset")
mysql1="update driveinfo set serno="&fser&", wrimark=1" 
rsmain.open mysql1,conn,1,2
response.write("<a href=’success.asp’>setup 
successful!welcome to access the website!</a>")
set rsmain=nothing
else 
if strserno=fser then
’若是合法用户再次合法进入
session("pass")=true
response.write("<a href=’success.asp’>you are authorized by the website manager,welcome to access !</a>")
else
’非法拷贝用户
session("pass")=false
response.write("<a href=’fail.htm’>it is illegal to copy the website’s asp document.you are not rigrt to use the program.</a>")
end if
end if 
response.write("<br>") 
response.write("volume serial number in drive "&testdrive)
response.write(f.serialnumber)
response.write("<br>")
response.write("volume hex serial number in drive "&testdrive)
response.write(hex(f.serialnumber))
response.write("<br>")
’作为演示,本程序把当前盘序列号列出来(16进制)
set f=nothing
set fs=nothing
%>
</html>

2、在合法用户可以访问的各个asp文件头部,添加如下代码: 
<% if session("pass")=false then
’对session变量进行判定,非法则跳出本asp文件
response.redirect("fail.htm")
end if 
%>

3、用asp加密程序(例如微软公司的screnc.exe,别的asp加密程序也可以)对各个asp文件进行加密。 
在dos状态下运行screnc -l vbscript source.asp destination.asp,即把源文件source.asp生成了包含密文asp脚本的新文件destination.asp。screnc.exe可以在微软公司站点(http://www.microsoft.com免费下载)。 
以上程序代码在简体中文nt4.0、iis3.0及简体中文pwin9.8、pws4.0下通过。

上一篇:asp编程经典例子
下一篇:利用asp+jmail进行邮件群发的新思路

[发送给好友] [打印本页] [关闭窗口] [返回顶部] 转载请注明来源:http://www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 投稿作者: 易特网络技术
信息来源: 易特网络技术 录入时间: 2005-11-24 17:25:57
浏览次数: 投稿信箱: shtghy@163.com
  友情链接
设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights ?2004-2005 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息