asp作品保護方案
來源:互聯網
上載者:User
自從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。