设计之家 > 教程 > 網頁教程 > 其他教程 >

保護ASP腳本源代碼

作者:未知 來源:本站原創 時間:2006-03-15

ASP是基于 Server端的腳本運行環境,它簡單易用,不需要編譯和連接,腳本可以在 Server端直接運行,并且它支持多用戶、多線程,在 Web開發中得到了廣泛的應用。  

但是,因為 ASP腳本是純文本格式,所以惡意者通過源代碼可以很容易地看到原本不該看到的頁面內容。例如, ASP源代碼中通常有系統數據庫的連接用戶名和口令,惡意者利用此用戶名和口令可以輕松地查看數據庫中的所有信息(包括系統機密信息),還可能篡改庫中信息,造成系統嚴重損壞。因此,保護 ASP腳本的源代碼顯得非常重要。  

保護 ASP腳本源代碼通常可采用 3種方式:第一種方式是對訪問用戶進行限制,禁止非法用戶訪問;第二種方式是對 Server端環境進行處理,提高系統的健壯性;第三種方式是對源代碼進行加工,隱藏或部分隱藏腳本源代碼。這 3種方式互為補充,有效設置可以提高腳本源代碼的安全性。下面簡單介紹這 3種方式的實現方法。  

限制訪問用戶  

所謂限制訪問用戶是指只有授權的用戶才能訪問系統的 ASP腳本。這主要有兩種實現方法:第一種方法是通過 SSL( Secure Socket Layer)方法, Server端向 Client端發放證書(可以利用免費證書管理軟件), Client端將證書添加到瀏覽器中,只有擁有合法證書的用戶才能與 Server端建立鏈接,從而訪問系統。這種方法不需要編程,安全性較高,但證書的下發比較麻煩。另一種方法是通過常用的驗證用戶名、口令方法,用戶登錄時必須首先輸入用戶名和口令,只有合法的用戶名和口令才能訪問系統。這種方法安全性稍低,編程比較簡單。而且在實現時需要注意:不能簡單地在登錄窗口進行判別,因為如果用戶知道了登錄窗口下一步鏈接的文件名,可以直接在地址欄輸入該文件名而繞過登錄窗口。編程時可以在除登錄窗口文件外的每個文件的開頭檢查 Request(“ HTTP_REFERENCE“)項的 IP地址,看其是否是由系統內部的文件跳轉而來,如不是則跳轉到登錄窗口。代碼如下:  

<%

dim iValid

iValid=instr(Request(“ HTTP_REFERENCE“),

“ http://131.252.88.71“)

if iValid= 0 then

Response.Redirect“ login.asp“

end if

......

% >  

對 Server端進行處理  

對 Server端進行處理主要有 3種方法:  

●對系統權限進行設置  

對 Server端設置詳細的安全權限,除了系統管理員,盡量降低用戶的存取權限;刪除不必要的共享,包括打印機的共享;關閉匿名服務等一些不必要的功能;對 ASP源代碼的目錄設置詳盡的訪問權限,關閉“讀”權限。  

●經常下載安全補丁  

一些惡意者經常利用系統的安全缺陷得到 ASP腳本的源代碼。例如,利用 ::$ DATA可以得到 ASP腳本的源代碼,或利用 Windows NT的一些安全缺陷可以登錄到系統,查看系統的目錄和文件,所以需要經常下載并安裝微軟公司提供的安全補丁。  

●盡量不要在系統中下載、安裝不必要的軟件  

一些下載軟件帶有“后門”,會將腳本源代碼泄露。例如,微軟有一個專門查看 ASP腳本源代碼的程序 code.asp,如果把它放到 Web服務器上,別人可以很容易地查看 ASP腳本源代碼(網上有不少類似免費軟件)。  

處理 ASP腳本源代碼  

對 ASP腳本源代碼進行處理主要有兩種方法:  

●對 ASP腳本源代碼進行加密  

利用微軟的 Windows Script Encoder,可以對 ASP腳本源代碼進行加密。不過客戶端加密后,只有 IE 5才能執行;服務器端腳本加密后,只有服務器上安裝有 Script Engine 5才能執行。  

Windows Script Encoder是一個簡單的命令行加密工具,可以利用它加密 ASP腳本的源代碼。加密后,無論 Server端和 Client端都無法讀懂加密后的信息,如果改動加密后的信息,腳本就無法正常運行,從而有效地保護了 ASP腳本源代碼。  

例如 ASP文件 Test.asp中有如下一條語句:  


<%

Response.Write“ 123456”

% >  


在 DOS方式下運行加密命令 : screnc c:\backiis\test.asp c:\backiis\testenc.asp  

在 testenc.asp中保存加密后代碼,代碼如下:  


<%# @~ ^IQAAAA==7@# @& 7“+ kwW/? ? MkO+ ,Jq+ 2c*+ E@# @& YQcAAA==^#~ @% >  


將 test.asp文件保存到另外一臺機器上, Client端可以正常訪問 testenc.asp(訪問是透明的,就像訪問 test.asp一樣 ),但無論 Server端和 Client端都無法查看 test.asp腳本源代碼。  

标签:

相關文章:

推薦設計

最新文章