□陳 瑞
( 太原理工大學(xué)計(jì)算機(jī)與軟件學(xué)院,山西 太原 030024)
采用IIS、 ASP技術(shù)和Access數(shù)據(jù)庫搭建服務(wù)器設(shè)計(jì)簡單方便,且易于管理,從而被廣泛采用。但I(xiàn)IS下使用ASP技術(shù)和Access數(shù)據(jù)庫搭建的服務(wù)器在為我們帶來方便的同時(shí)也帶來了不容忽視的安全問題,如頁面被篡改,數(shù)據(jù)庫被下載等。針對這些情況,本文就目前常見的安全性問題進(jìn)行了簡單的分析,并根據(jù)自己平時(shí)工作和學(xué)習(xí)經(jīng)驗(yàn)提出了相應(yīng)的防范措施。
1.Access數(shù)據(jù)庫的安全問題
在基于ASP技術(shù)和Access數(shù)據(jù)庫應(yīng)用系統(tǒng)中,如果入侵者獲得數(shù)據(jù)庫的存儲路徑和數(shù)據(jù)庫名,則該數(shù)據(jù)庫很容易被下載下來。如果數(shù)據(jù)庫沒加密或被破解,則數(shù)據(jù)庫中所有信息即被盜用。
2.一些常見的Access數(shù)據(jù)庫安全防范措施
(1)改變數(shù)據(jù)庫文件的名稱及擴(kuò)展名。將數(shù)據(jù)庫文件起個(gè)復(fù)雜的且無規(guī)則的名字,還可以在數(shù)據(jù)庫名稱前加“#”,防止入侵者猜到。將數(shù)據(jù)庫默認(rèn)的擴(kuò)展名mdb修改為asp或者asa等不影響查詢的名字,這樣可以避免使用IE瀏覽器下載。
(2)改變數(shù)據(jù)庫文件存放的路徑。一般不要將數(shù)據(jù)庫放在Web目錄下,因?yàn)橐恍└夸浵碌奈募梢韵螺d。數(shù)據(jù)庫文件應(yīng)該放在多級目錄下,這樣就增加了安全性。
(3)給數(shù)據(jù)庫文件加密碼。用戶可以用為Access數(shù)據(jù)庫設(shè)置密碼的方法保護(hù)數(shù)據(jù),這樣即使入侵者得到了數(shù)據(jù)庫,也無法查看數(shù)據(jù)庫中的內(nèi)容。為了防止入侵者使用別的工具查看數(shù)據(jù)庫文件的內(nèi)容,首先應(yīng)對數(shù)據(jù)庫文件添加密碼,具體操作步驟:在Access編輯窗口(未打開任何數(shù)據(jù)庫文件),選擇“工具”菜單,單擊“安全”,選擇“加密/解密數(shù)據(jù)庫”,在“加密/解密數(shù)據(jù)庫”窗口中選取需要加密的數(shù)據(jù)庫,接著會出現(xiàn)“數(shù)據(jù)庫加密后另存為”的窗口,將其保存。 接下來為數(shù)據(jù)庫加密,首先打開經(jīng)過加密的數(shù)據(jù)庫,注意要選擇“獨(dú)占方式”打開,然后選擇“工具”—“安全”—“設(shè)置數(shù)據(jù)庫密碼”,輸入密碼即可。
(4)使用ODBC連接數(shù)據(jù)庫。應(yīng)盡量使用ODBC數(shù)據(jù)源,不要把數(shù)據(jù)庫名寫在程序中,否則入侵者看到ASP源代碼也就看到了數(shù)據(jù)庫名以及存放路徑。操作也比較簡單,只需新建一段連接數(shù)據(jù)庫代碼文件,將其命名為conn.asp。這樣只要在需要調(diào)用數(shù)據(jù)庫的ASP文件中加入就可以實(shí)現(xiàn)數(shù)據(jù)庫的調(diào)用。這樣就隱藏了調(diào)用語段,解決了ASP源代碼暴露后網(wǎng)站數(shù)據(jù)庫名和存放路徑暴露的問題。
(5)添加數(shù)據(jù)庫名的擴(kuò)展映射。通過修改IIS設(shè)置來實(shí)現(xiàn),選擇IIS屬性—主目錄—配置—映射—應(yīng)用程序擴(kuò)展那里添加.mdb文件的應(yīng)用解析,修改后下載數(shù)據(jù)庫就會出現(xiàn)404或500等錯(cuò)誤。這樣即使入侵者掌握數(shù)據(jù)庫名和存放路徑也無法下載。
源程序代碼的安全隱患及防范措施。由于ASP不是把源程序編譯成目標(biāo)機(jī)器代碼來執(zhí)行,而是源程序直接執(zhí)行,這樣程序源代碼的安全性將大大降低,任何人只要訪問站點(diǎn)就有可能獲取源代碼。
對ASP頁面進(jìn)行加密可以有效地防止ASP源代碼泄露。有兩種方法:一種是使用組件技術(shù)將程序代碼封裝入DLL中;另一種是使用微軟的Script Encoder對ASP頁面進(jìn)行加密。使用組件技術(shù)需對每段代碼組件化,操作煩瑣,工作量較大,而使用Script Encoder對ASP頁面進(jìn)行加密操作簡單,掌握一些基本的命令即可,而且可以批量處理ASP頁面,還可以只加密在HTML頁面中嵌入的ASP代碼,其他部分保持不變,這樣可以使用網(wǎng)頁編輯工具對HTML部分進(jìn)行修改,所以建議讀者使用Script Encoder對ASP頁面進(jìn)行加密。
Filesystemobject(即FSO)組件的威脅。通過FSO組件可以對ASP文件進(jìn)行包括文本文件的創(chuàng)建、修改、刪除、查詢、復(fù)制等操作,入侵者就是利用FSO的這些功能特點(diǎn)篡改和下載FAT分區(qū)上的任何文件,即使是NTFS分區(qū)如果分配的權(quán)限不合適,也容易被攻擊。
為了防止入侵者利用FSO對網(wǎng)站的威脅,首先應(yīng)將Web目錄建立在NTFS分區(qū)上,并且目錄不要設(shè)定Everyone完全控制,對于不同的用戶分配不同的權(quán)限。還可以修改FSO組件名稱來達(dá)到防范目的,比如將FSO組件名更改為FSOa,入侵者在調(diào)用此組件過程中如果還使用FSO這個(gè)名稱就不起作用。如果在應(yīng)用中不需要FSO組件,可以將其刪除。
驗(yàn)證漏洞。驗(yàn)證被繞過,入侵者就可以訪問到未授權(quán)的內(nèi)容。
防止驗(yàn)證漏洞,首先應(yīng)該限制未被授權(quán)的用戶訪問被限制的ASP內(nèi)容,Web服務(wù)器將進(jìn)行身份驗(yàn)證,檢查用戶是否擁有訪問權(quán)限。
還可以使用Session對象。因?yàn)锳SP代碼使用表單實(shí)現(xiàn)交互,相關(guān)的內(nèi)容會出現(xiàn)瀏覽器的地址欄中,只要記住地址,就可以繞過驗(yàn)證直接進(jìn)入頁面。為防止未經(jīng)授權(quán)的用戶繞過驗(yàn)證直接進(jìn)入未被授權(quán)頁面,可以采用Session對象對登陸未被授權(quán)頁面的用戶進(jìn)行驗(yàn)證。
頁面緩存漏洞。如果瀏覽器設(shè)置的是瀏覽網(wǎng)頁時(shí)首先查看本地緩沖區(qū)里的頁面,則非法用戶不用經(jīng)過驗(yàn)證就可以訪問本地緩沖區(qū)里未經(jīng)授權(quán)的頁面。
為阻止此類事件發(fā)生,Web服務(wù)器必須禁止頁面緩存,訪問頁面時(shí)強(qiáng)制瀏覽器向Web服務(wù)器請求新頁面。還可以利用ASP的Response對象和Expires屬性和Clear方法來清除緩沖區(qū)的所有HTML輸出。
輸入框信息過濾漏洞。輸入框中輸人標(biāo)準(zhǔn)的HTML語句或者JavaScript語句會改變輸出結(jié)果,如果輸入框輸入數(shù)據(jù)查詢語句,就可以得到數(shù)據(jù)庫信息。
可以通過限定只允許輸入字母與數(shù)字,屏蔽掉特殊字符。同時(shí)對輸入字符的長度進(jìn)行限制來防止出現(xiàn)此類情況。
Cookies的安全漏洞。Cookies是一種能夠讓網(wǎng)站服務(wù)器把少量數(shù)據(jù)儲存到客戶端的硬盤或內(nèi)存上或是從客戶端的硬盤讀取數(shù)據(jù)的一種技術(shù)。當(dāng)瀏覽某網(wǎng)站時(shí),Cookies可以記錄用戶ID、密碼、瀏覽過的網(wǎng)頁、停留的時(shí)間等信息。當(dāng)再次訪問該網(wǎng)站時(shí),用戶不用輸入ID、密碼就直接登錄或者他人可以看到你的用戶ID和密碼,非常危險(xiǎn)。
給密碼加密,這樣入侵者獲得cookies信息,也無法登陸,還可以設(shè)置密碼信息不要存放于cookies中。
利用隨機(jī)數(shù)實(shí)現(xiàn)防御Cookies欺騙。用戶在登陸的時(shí)候需要驗(yàn)證兩個(gè)Cookies,一個(gè)是用戶名,一個(gè)是隨機(jī)數(shù),相當(dāng)于多了一個(gè)“驗(yàn)證碼”。用戶名可以很輕松的修改,但是隨機(jī)數(shù)就很難猜到了。即使入侵者把用戶名修改成管理員的用戶名,因?yàn)殡S機(jī)數(shù)不符合,也無法登錄。
ASP木馬。入侵者將木馬上傳到服務(wù)器后,利用木馬可以添加管理員賬號,然后用管理員賬號進(jìn)行文件修改刪除等操作,還可以通過木馬直接刪除網(wǎng)站里面的目錄和文件。防止ASP木馬入侵,可以限制上傳文件的格式,例如只允許壓縮文件上傳;將上傳的文件存放在固定的目錄下,并將該目錄的“執(zhí)行權(quán)限”設(shè)置成“無”。
IIS(即 Internet Information Server)是允許在公共Intranet或Internet上發(fā)布信息的Web服務(wù)器, IIS為Web服務(wù)器的信息發(fā)布提供了很大的方便,基于ASP技術(shù)和Access一般也是通過IIS來發(fā)布,所以IIS的安全問題不容忽視,必須加強(qiáng)IIS的安全機(jī)制。
1.刪除危險(xiǎn)的IIS組件。默認(rèn)安裝IIS組件中會安裝一些帶有安全威脅的組件,用戶可以根據(jù)自己的需要?jiǎng)h除IIS組件。
2.安裝完畢后建議把默認(rèn)生成的Inetpub目錄及其下的文件刪除,或者不要把Web文件存放在此默認(rèn)目錄下,因?yàn)楹芏嗳肭终咧肋@個(gè)默認(rèn)路徑,這樣就很容易被入侵,改變默認(rèn)路徑就避免了這樣的安全隱患。
3.對IIS中的文件分類并設(shè)置權(quán)限。為Web 站點(diǎn)上不同類型的文件建立目錄,然后對目錄分配適當(dāng)權(quán)限。
4.對Web站點(diǎn)設(shè)置權(quán)限。建議對讀操作允許、寫操作不允許、腳本源訪問不允許、目錄瀏覽、日志訪問和索引資源建議關(guān)閉,執(zhí)行權(quán)限建議選擇“僅限于腳本”。
5.修改IIS中網(wǎng)站調(diào)試時(shí)提示的信息。在網(wǎng)站目錄屬性對話框的“主目錄”頁面中,點(diǎn)擊“配置”—“應(yīng)用程序配置”—“調(diào)試”,在“調(diào)試”頁面,如果選擇“向客戶端發(fā)送下列文本錯(cuò)誤信息” ,那么入侵者就會知道你的錯(cuò)誤和文件存放路徑,所以不選此項(xiàng)。
6.修改IIS日志的存放路徑并修改訪問日志權(quán)限。IIS的日志默認(rèn)存放在系統(tǒng)盤windowsSystem32LogFiles目錄下,入侵者會利用日志默認(rèn)路徑這一特點(diǎn),查找日志,找到一些需要的信息。所以要對日志存放路徑進(jìn)行修改,并建議使用W3C擴(kuò)充日志文件格式,同時(shí)設(shè)置日志的訪問權(quán)限。
本文較為系統(tǒng)的分析了IIS下基于ASP技術(shù)和Access數(shù)據(jù)庫網(wǎng)站的安全性問題,并提出了相應(yīng)的防范措施。但隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,針對網(wǎng)站的安全問題會越來越多,這就要求網(wǎng)站開發(fā)人員和維護(hù)人員要不斷地學(xué)習(xí)新技術(shù),研究新方法,最大限度地去保證網(wǎng)站的安全運(yùn)行。
參考文獻(xiàn):
[1]呂繼迪,孫明麗,龐婭娟. ASP程序開發(fā)范例寶典[M]. 北京:人民郵電出版社,2009.
[2]余連新.動(dòng)態(tài)網(wǎng)頁源碼安全性研究及實(shí)現(xiàn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2006,(2).