ASP.NET虛擬主機(jī)的重大安全隱患
ASP.NET虛擬主機(jī)存在的重大隱患的前言,我曾經(jīng)在WWW.BRINKSTER.COM申請了一個免費(fèi)的ASP.NET空間,上傳了兩個程序,其中一個查看目錄和文件的程序證明我的判斷:ASP共享空間服務(wù)器存在的一個安全問題,在 ASP+ 共享空間服務(wù)器中依然存在并且變得更加難以防范!通過這個程序我可以瀏覽所有用戶的ASP+程序,可以查看服務(wù)器的系統(tǒng)日志……,當(dāng)然,如果我想刪除什么的話也不會有什么問題。為了讓大家更清楚地了解這一問題,我們有必要簡單介紹一下ASP中就已經(jīng)存在的這一問題。
ASP中常用的標(biāo)準(zhǔn)組件:FileSystemObject,這個組件為 ASP 提供了強(qiáng)大的文件系統(tǒng)訪問能力,可以對服務(wù)器硬盤上的任何有權(quán)限的目錄和文件進(jìn)行讀寫、刪除、改名等操作。FSO對象來自微軟提供的腳本運(yùn)行庫scrrun.dll中。
使用下面的代碼就可以在ASP中創(chuàng)建一個FSO對象:
Set fso = CreateObject("Scripting.FileSystemObject")
ASP.NET虛擬主機(jī)在我們使用fso對象包含的屬性和方法有:如Drive、Drives、Folder、Floders、File、Files等對服務(wù)器的磁盤、目錄和文件進(jìn)行讀、寫、刪除等操作。這一強(qiáng)大的文件系統(tǒng)訪問能力給ASP共享空間提供者帶來了嚴(yán)重的安全問題,很多ASP空間的管理員都刪除此組件或?qū)⑦@個組件改名以避免用戶使用這一標(biāo)準(zhǔn)組件。刪除組件或組件改名確實(shí)是一個簡單的方法并且也很有效,但是卻使廣大用戶無法使用它的強(qiáng)大的功能。網(wǎng)絡(luò)上還有一種看起來很美的方案,它允許用戶使用 FileSystemObject 組件又不影響服務(wù)器的安全,即對每一個用戶都設(shè)置一個獨(dú)立的服務(wù)器用戶和單個目錄的操作權(quán)限。但是這種方法是有問題的。因?yàn)锳SP和ASP.NET中在這方面的問題十分類似,所以我們將在ASP.NET的相應(yīng)解決辦法部分詳加說明。
在ASP.NET虛擬主機(jī)中我們發(fā)現(xiàn)這一問題仍然存在,并且變得更加難以解決。這是因?yàn)?NET中關(guān)于系統(tǒng)IO操作的功能變得更加強(qiáng)大,而使這一問題更嚴(yán)重的是ASP.NET所具有的一項(xiàng)新功能,這就組件不需要象ASP那樣必須要使用regsvr32來注冊了,只需將Dll類庫文件上傳到bin目錄下就可以直接使用了。這一功能確實(shí)給開發(fā)ASP.NET帶來了很大的方便,但是卻使我們在ASP中將此dll刪除或者改名的解決方法失去效用了,防范此問題就變得更加復(fù)雜。在討論解決方案之前,我們先來看一下怎么來實(shí)現(xiàn)上述的危險的功能。
ASP.NET虛擬主機(jī)相關(guān)的隱患簡介就向你介紹到這里,之后我們會逐步介紹ASP.NET虛擬主機(jī)安全隱患方面的內(nèi)容。
【編輯推薦】