ASP 透過 FileSystemObject (FSO) 元件可對伺服器檔案系統進行讀/寫/複製/刪除/重命名等操作,功能強大但也成為駭客植入「FSO 木馬」竊取資料、竄改網頁的利器。單純禁用 FSO 會導致合法 ASP 程式失效。本文介紹在不禁用 FSO 前提下,透過 NTFS 權限與匿名帳戶隔離,實現「各虛擬主機僅能存取自身目錄」的安全配置。
核心原則:最小權限原則 + 匿名帳戶隔離
透過移除 C: 根目錄的 Everyone/Users 權限,並建立獨立匿名帳戶對應各網站目錄,達到「FSO 可用、但無法越界存取」的效果。
第一階段:系統磁碟基礎權限收斂
- 右鍵 C: → 「內容」→「安全性」→ 移除 Everyone、Users 群組。
- 若移除後 ASP 程式無法執行,加入 IIS_WPG 群組(給予「讀取/執行」、「列出資料夾內容」、「讀取」權限)。
- 重新開機生效。

第二階段:各網站目錄獨立權限與匿名帳戶綁定
以 E:\Abc 目錄對應 Abc.com 網站為例:
1. 建立專屬匿名帳戶
- 「電腦管理」→「本地使用者和群組」→「使用者」→ 新增使用者
Abc,設定密碼。
- 取消「使用者下次登入時必須變更密碼」,勾選「使用者無法變更密碼」、「密碼永遠不會過期」。
3. 將該帳戶加入 Guests 群組(最低權限)。
2. 設定網站目錄 NTFS 權限
- 右鍵
E:\Abc → 「內容」→「安全性」。
- 移除預設的 Everyone 完全控制(若無法移除,先按「進階」→ 取消勾選「允許繼承父物件的權限」→ 「複製」或「移除」所有繼承權限)。
- 新增 Administrators 群組(完全控制)與 Abc 使用者(完全控制/修改/讀取/寫入)。
3. IIS 綁定匿名帳戶
- 開啟 IIS 管理員 → 右鍵
Abc.com 網站 → 「內容」→「目錄安全性」→「驗證方法與存取控制」→「編輯」。
- 匿名存取帳戶預設為
IUSR_電腦名,點「瀏覽」→ 選擇剛建立的 Abc 帳戶 → 輸入密碼確認。

效果驗證
- 瀏覽
Abc.com 時,IIS 以 Abc 匿名身分執行 ASP 程式。
Abc 帳戶僅對 E:\Abc 擁有權限,FSO 操作被限制在該目錄內,無法讀寫其他網站目錄或系統資料夾。
- 同理為每個網站建立專屬帳戶與目錄權限,即可實現多網站 FSO 隔離。
進階建議
- 對所有資料磁碟分區(D:、E:、F:...)重複第一階段收斂動作。
- 定期稽核匿名帳戶權限,確保無意外繼承權限導致越界。
- 搭配 URLScan、Request Filtering、應用程式集區身分識別隔離(ApplicationPoolIdentity)等多層防護,構建纵深防禦。
此配置方式在 Windows Server 2003 + IIS 6.0 環境驗證有效,同樣適用於 Windows Server 2008/2012 + IIS 7/8(配合應用程式集區身分識別效果更佳)。