ASP 經典應用在 Windows 2000 Server IIS 下使用 Scripting.FileSystemObject (FSO) 讀寫檔案時,常遇到「權限被拒絕」錯誤。原因是 ASP 執行身分為 IUSR_機器名 匿名帳戶,預設無檔案系統寫入權限。本文提供標準授權法與安全替代方案。
IIS 匿名存取使用 IUSR_機器名 本機帳戶,該帳戶預設僅有讀取靜態檔案權限,無寫入/建立/刪除檔案權限。
IUSR_機器名 → 「檢查名稱」→ 確定。風險:該資料夾下所有 ASP 腳本均可任意讀寫檔案,若有上傳漏洞/注入漏洞,駭客可植入 Webshell 控制伺服器。
IUSR_DOMAIN(或自訂名稱),設定強密碼、密碼永不過期、不可變更密碼。IUSR_DOMAIN。CACLS 或 GUI 僅授予該帳戶必要資料夾的寫入權限。regsvr32 /u c:\windows\system\scrrun.dll(路徑視系統而定)HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID 值修改最後一位字元。Server.CreateObject 呼叫自訂安全元件(如僅提供特定資料夾讀寫的封裝 DLL)。<OBJECT ID="MyFSO" CLASSID="CLSID:0D43FE01-F093-11CF-8940-00A0C9054228" RUNAT="Server" SCOPE="Application"></OBJECT>
RUNAT="Server" 表示伺服器端執行,SCOPE 可為 Session/Application/Page。修改 CLSID 可快速啟用/禁用。
最佳實務建議:方案二(專用帳戶隔離)+ 程式碼層面輸入驗證/路徑遍歷防護 + 定期掃描 Webshell + WAF 防護,構建多層防禦。
Windows 2000/XP 系統服務優化完整指南:啟用、手動、停用建議對照表
Windows 2000 Server 啟用終端機服務實現遠端桌面連線:元件安裝與連線驗證
Windows 記憶體錯誤「指令引用的記憶體無法 read/written」完整解決方案與原因分析
Windows 2000 啟用遠端桌面 (3389 埠) 命令列完整教學
Microsoft Windows 2000 Server 系統下載說明:版權限制與學習交流群組
Windows 伺服器安全基線設定完整清單 (Win2K/XP/2003 通用)