国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

asp作品保護(hù)方案

2019-11-18 20:18:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
自從asp(Active Server Pages)問(wèn)世以來(lái),因其可以創(chuàng)建健壯易于維護(hù)、與平臺(tái)無(wú)關(guān)的應(yīng)用系統(tǒng),ASP技術(shù)受到了越來(lái)越多網(wǎng)絡(luò)程序員的喜愛(ài),使用ASP從事WEB開(kāi)發(fā)的人也越來(lái)越多。但ASP只是一種非編譯型的、在服務(wù)端運(yùn)行的腳本語(yǔ)言,采用明文(plain text)方式來(lái)編寫(xiě),即使采用了ASP加密程序?qū)SP源碼進(jìn)行加密,也不一定能保證發(fā)布到運(yùn)行環(huán)境中去的A
SP應(yīng)用程序不被非法拷貝。對(duì)于高權(quán)限的管理員,可以輕而易舉從服務(wù)器端拷貝出ASP程序應(yīng)用到別的非授權(quán)網(wǎng)站。這樣給ASP應(yīng)用商業(yè)化帶來(lái)了一定的困難。如何有效保護(hù)開(kāi)發(fā)出來(lái)的ASP程序,本文基于磁盤(pán)序列號(hào)產(chǎn)生的隨機(jī)性,結(jié)合微軟官方免費(fèi)提供的ASP腳本加密程序SCRENC.EXE,很好地解決了這個(gè)問(wèn)題。  
磁盤(pán)序列號(hào),簡(jiǎn)稱磁盤(pán)ID,是對(duì)磁盤(pán)進(jìn)行格式化時(shí)隨機(jī)產(chǎn)生的磁盤(pán)標(biāo)識(shí)信息,是一個(gè)卷序列號(hào)。同一機(jī)器兩次格式化隨機(jī)產(chǎn)生固定格式的序列號(hào)相同幾率幾乎為零, DOS的后期版本和WINDOWS、WINNT均采用了這種磁盤(pán)標(biāo)識(shí)方式,因而磁盤(pán)序列號(hào)常被運(yùn)用用于商業(yè)化軟件進(jìn)行加密使用。從WINDOWS9.X切換到MS-DOS方式,鍵入DIR命令后回車,屏幕出現(xiàn)當(dāng)前卷標(biāo)序列號(hào)信息,這個(gè)類似"0A48-1CD7"的序列號(hào)是一個(gè)16進(jìn)制數(shù)。一些限期使用的軟件,在使用期限到了之后,會(huì)要求使用者在線申請(qǐng)新的授權(quán)序列號(hào)(使用許可)。這種授權(quán)序列號(hào)相當(dāng)一部分是采用了靜態(tài)磁盤(pán)序列號(hào)結(jié)合時(shí)間產(chǎn)生的。安裝完畢之后的軟件,程序即使被非法拷貝到非初始安裝環(huán)境中,也不能使用。  

上述思想用VC、VB及DELipHI編程語(yǔ)言都容易實(shí)現(xiàn),那么,在ASP中又如何實(shí)現(xiàn)呢?VBScript作為一種健壯的、安全的用戶語(yǔ)言,是受客戶機(jī)系統(tǒng)限制的,不能處理客戶機(jī)上API的調(diào)用,也不能直接操縱客戶機(jī)上的文件和文件系統(tǒng)之外的控件。因而本文采用VBScript并結(jié)合ASP內(nèi)置組件FileSystem來(lái)實(shí)現(xiàn)上述思想。 以下程序根據(jù)具體情況略加修改,可以應(yīng)用于實(shí)際的ASP應(yīng)用系統(tǒng)。  

作為講解實(shí)例,本文用到access數(shù)據(jù)庫(kù)安全機(jī)制,實(shí)際應(yīng)用中,可以用其它格式的文件存放的數(shù)據(jù)。為便于闡述,我們先建一個(gè)Access數(shù)據(jù)庫(kù)ID.mdb(密碼為"kxj"),內(nèi)建一個(gè)DriveInfo表,數(shù)據(jù)結(jié)構(gòu)如下:  

id(自動(dòng)編號(hào)) ;
Serno(文本,12,磁盤(pán)序列號(hào)(10進(jìn)制)) ;
Wrimark(數(shù)字,1,寫(xiě)盤(pán)標(biāo)志,)。


說(shuō)明  

Wrimark 值為0代表合法用戶未安裝系統(tǒng),值為1代表該系統(tǒng)已安裝。當(dāng)值為1且序列號(hào)與當(dāng)前盤(pán)不符時(shí),則判定為非法拷貝用戶。  

初始化時(shí)先定義一個(gè)新記錄,各字段初始值分別為1,12345678,0。  

在同一目錄下,例如C:/INTERPUB/WWWROOT下,放置首頁(yè)Default.asp,合法用戶首頁(yè)Success.asp,非法安裝用戶提示頁(yè)Fail.htm及ID.mdb序列號(hào)存放庫(kù)。  

各ASP文件的編寫(xiě)操作如下:  

1、用FrontPage(或NotePad),新建一個(gè)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")
''通過(guò)MapPath獲得當(dāng)前盤(pán)盤(pán)符
testDrive=Left(testDrive,3)
set f=fs.getdrive(testDrive)
''調(diào)用GetDrive方法,將驅(qū)動(dòng)器賦予一個(gè)變量
MySQL="SELECT * From driveinfo where id=1"  
set rsCheck = Server.CreateObject("ADODB.Recordset")
rsCheck.open Mysql,conn,1,1
FSER=trim(f.serialnumber)
''獲得當(dāng)前盤(pán)序列號(hào)
StrSerno=trim(rsCheck.fields("SERNO"))
StrMark=rsCheck.fields("WRIMARK")
if StrSerno<>FSER and StrMark=0 then
''若是首次安裝,則置寫(xiě)盤(pán)標(biāo)志為1
session("pass")=true
''定義用戶Session,并置為全局ASP文檔標(biāo)識(shí)變量
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
''若是合法用戶再次合法進(jìn)入
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>")
''作為演示,本程序把當(dāng)前盤(pán)序列號(hào)列出來(lái)(16進(jìn)制)
set f=nothing
set fs=nothing
%>
</html>


2、在合法用戶可以訪問(wèn)的各個(gè)ASP文件頭部,添加如下代碼:  

<% if Session("pass")=false then
''對(duì)Session變量進(jìn)行判定,非法則跳出本ASP文件
response.redirect("fail.htm")
end if  
%>


3、用ASP加密程序(例如微軟公司的SCRENC.EXE,別的ASP加密程序也可以)對(duì)各個(gè)ASP文件進(jìn)行加密。  

在DOS狀態(tài)下運(yùn)行SCRENC -l vbscript source.asp destination.asp,即把源文件source.asp生成了包含密文ASP腳本的新文件destination.asp。SCRENC.EXE可以在微軟公司站點(diǎn)(http://www.microsoft.com免費(fèi)下載)。  
以上程序代碼在簡(jiǎn)體中文NT4.0、IIS3.0及簡(jiǎn)體中文PWIN9.8、PWS4.0下通過(guò)。  

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 聂荣县| 辉南县| 屏东市| 兰坪| 堆龙德庆县| 冀州市| 乌拉特后旗| 巴林右旗| 渝中区| 青川县| 临海市| 从江县| 同江市| 上杭县| 阿合奇县| 九寨沟县| 湛江市| 永平县| 万州区| 诏安县| 汾阳市| 彩票| 渝北区| 丘北县| 河曲县| 尼木县| 三都| 东阿县| 鄄城县| 东山县| 兰考县| 衡东县| 甘孜县| 贺州市| 东乌珠穆沁旗| 澜沧| 大安市| 荃湾区| 泽州县| 新干县| 黄平县|