ASP是基于 Server端的腳本運(yùn)行環(huán)境,它簡(jiǎn)單易用,不需要編譯和連接,腳本可以在 Server端直接運(yùn)行,并且它支持多用戶、多線程,在 Web開發(fā)中得到了廣泛的應(yīng)用。  

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

保護(hù) ASP腳本源代碼通??刹捎?3種方式:第一種方式是對(duì)訪問用戶進(jìn)行限制,禁止非法用戶訪問;第二種方式是對(duì) Server端環(huán)境進(jìn)行處理,提高系統(tǒng)的健壯性;第三種方式是對(duì)源代碼進(jìn)行加工,隱藏或部分隱藏腳本源代碼。這 3種方式互為補(bǔ)充,有效設(shè)置可以提高腳本源代碼的安全性。下面簡(jiǎn)單介紹這 3種方式的實(shí)現(xiàn)方法。  

限制訪問用戶  

所謂限制訪問用戶是指只有授權(quán)的用戶才能訪問系統(tǒng)的 ASP腳本。這主要有兩種實(shí)現(xiàn)方法:第一種方法是通過 SSL( Secure Socket Layer)方法, Server端向 Client端發(fā)放證書(可以利用免費(fèi)證書管理軟件), Client端將證書添加到瀏覽器中,只有擁有合法證書的用戶才能與 Server端建立鏈接,從而訪問系統(tǒng)。這種方法不需要編程,安全性較高,但證書的下發(fā)比較麻煩。另一種方法是通過常用的驗(yàn)證用戶名、口令方法,用戶登錄時(shí)必須首先輸入用戶名和口令,只有合法的用戶名和口令才能訪問系統(tǒng)。這種方法安全性稍低,編程比較簡(jiǎn)單。而且在實(shí)現(xiàn)時(shí)需要注意:不能簡(jiǎn)單地在登錄窗口進(jìn)行判別,因?yàn)槿绻脩糁懒说卿洿翱谙乱徊芥溄拥奈募?,可以直接在地址欄輸入該文件名而繞過登錄窗口。編程時(shí)可以在除登錄窗口文件外的每個(gè)文件的開頭檢查 Request(“ HTTP_REFERENCE“)項(xiàng)的 IP地址,看其是否是由系統(tǒng)內(nèi)部的文件跳轉(zhuǎn)而來,如不是則跳轉(zhuǎn)到登錄窗口。代碼如下:  

<%

dim iValid

iValid=instr(Request(“ HTTP_REFERENCE“),

“ http://131.252.88.71“)

if iValid= 0 then

Response.Redirect“ login.asp“

end if

......

% >  

對(duì) Server端進(jìn)行處理  

對(duì) Server端進(jìn)行處理主要有 3種方法:  

●對(duì)系統(tǒng)權(quán)限進(jìn)行設(shè)置  

對(duì) Server端設(shè)置詳細(xì)的安全權(quán)限,除了系統(tǒng)管理員,盡量降低用戶的存取權(quán)限;刪除不必要的共享,包括打印機(jī)的共享;關(guān)閉匿名服務(wù)等一些不必要的功能;對(duì) ASP源代碼的目錄設(shè)置詳盡的訪問權(quán)限,關(guān)閉“讀”權(quán)限。  

●經(jīng)常下載安全補(bǔ)丁  

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

●盡量不要在系統(tǒng)中下載、安裝不必要的軟件  

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

處理 ASP腳本源代碼  

對(duì) ASP腳本源代碼進(jìn)行處理主要有兩種方法:  

●對(duì) ASP腳本源代碼進(jìn)行加密  

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

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

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


<%

Response.Write“ 123456”

% >  


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

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


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


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

標(biāo)簽:

相關(guān)文章

隨機(jī)推薦