FSO(HTTP://www.aliyun.com/zixun/aggregation/19352.html">FileSystemObject)是微軟ASP的一個對檔操作的控制項,該控制項可以對伺服器進行讀取 、新建、修改、刪除目錄以及檔的操作。 是ASP程式設計中非常有用的一個控制項。 但是因為許可權控制的問題,很多虛擬主機伺服器的FSO反而成為這台伺服器的一個公開的後門,因為客戶可以在自己的ASP網頁裡面直接就對該控制項程式設計,從而控制該伺服器甚至刪除伺服器上的檔。 因此不少業界的虛擬主機供應商都乾脆關掉了這個控制項,讓客戶少了很多靈活性。
FSO是指檔案系統物件,英文單詞為File System Object。 FSO是ASP程式中的一個對檔操作的控制項,通過程式設計,可以通過該控制項對伺服器進行讀取、新建、修改、刪除目錄以及檔的操作。 它是ASP程式設計中非常有用的一個控制項,但大家可以想一下,在一台伺服器上有許多虛擬使用者,如果一個使用者使用FSO刪除別人的檔,那不是亂了套,所以基於安全考慮,不少的虛擬主機服務商乾脆關掉了這個控制項,但關掉此控制項, 有的有戶想使用ASP生成檔又變成了不可能的事,所以如果關閉了FSO會讓客戶很不方便。 所以你在購買虛擬主機時,一定要看看你的伺服器有沒有關閉FSO許可權,用了FSO,我們就可以操縱的電腦檔案系統,在這裡是指位於web伺服器之上。 所以,確認你對此擁有合適的許可權。 理想情況下,你可以在自己的機器上建立一個web伺服器,這樣就能方便地進行測試。 如果運行于Windows平臺,如果你還不是很瞭解FSO,請試一試微軟公司的免費個人Web伺服器PWS,或windows2000的IISFSO 模型物件Drive Object:磁碟機物件 供存取磁片或者網路磁碟機FileSystemObject Object:檔案系統物件 供存取電腦的檔案系統Folder Object:資料夾物件 供存取資料夾的所有屬性TextStream Object:文本流物件 供存取檔內容 你可以使用上面的物件做電腦上的任何事情,也包括破壞活動 ;-( 所以,請小心使用FSO。 在web環境中,存儲資訊是非常重要的,比如使用者資訊,日誌檔,等等。 FSO提供了一個強大且簡單的方法高效率地保存資料。 在這篇文章裡面,著重討論FileSystemObject和TextStream物件。
ASP提供了強大的檔案系統訪問能力,可以對伺服器硬碟上的任何檔進行讀、寫、複製、刪除、改名等操作,這給學校網站的安全帶來巨大的威脅。 現在很多校園主機都遭受過FSO木馬的侵擾。 但是禁用FSO元件後,引起的後果就是所有利用這個元件的ASP程式將無法運行,無法滿足客戶的需求。 如何既允許 FileSystemObject元件,又不影響伺服器的安全性呢(即:不同虛擬主機使用者之間不能使用該元件讀寫別人的檔)? 以下是筆者多年來摸索出來的經驗:
第一步是有別于Windows 2000設置的關鍵:右擊C盤,點擊「共用與安全」,在出現在對話方塊中選擇「安全」選項卡,將Everyone、Users組刪除,刪除後如果你的網站連 ASP程式都不能運行,請添加IIS_ WPG組(圖1),並重啟電腦。
經過這樣設計後,FSO木馬就已經不能運行了。 如果你要進行更安全級別的設置,請分別對各個磁碟分割進行如上設置,並為各個網站設置不同匿名存取使用者。 下面以實例來介紹(假設你的主機上E盤Abc資料夾下設Abc.com網站):
1. 打開「電腦管理→本地使用者和組→使用者」,創建Abc使用者,並設置密碼,並將「使用者下次登錄時須更改密碼」前的對號去掉,選中「使用者不能更改密碼」和「密碼永不過期」,並把使用者設置為隸屬于Guests組。
2. 右擊E:Abc,選擇「屬性→安全」選項卡,此時可以看到該資料夾的預設安全設置是「Everyone」完全控制(視不同情況顯示的內容不完全一樣),刪除Everyone的完全控制(如果不能刪除,請點鱗高級]按鈕,將「 允許父項的繼承許可權傳播」前面的對號去掉,並刪除所有),添加 Administrators及Abc使用者對本網站目錄的所有安全許可權。
3. 打開IIS管理器,右擊Abc.com主機名稱,在彈出的功能表中選擇「屬性→目錄安全性」選項卡,點擊身份驗證和存取控制的[編輯],彈出圖2所示對話方塊,匿名存取使用者預設的就是「IUSR_機器名」,點擊[流覽],在「選擇使用者」 對話方塊中找到前面創建的Abc帳戶,確定後重複輸入密碼。
經過這樣設置,訪問網站的使用者就以Abc帳戶匿名身份訪問E:Abc資料夾的網站,因為Abc帳戶只對此資料夾有安全許可權,所以他只能在本資料夾下使用FSO。