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。
常見問題:
如何解除FSO上傳程序小於200k限制?
先在服務裡關閉IIS admin service服務,找到Windows\System32\Inesrv目錄下的Metabase.xml並打開,找到ASPMaxRequestEntityAllowed,將其修改為需要的值。默認為204800,即200K,把它修改為51200000(50M),然後重啟IIS admin service服務。