windows server 2008 iis 7.5 下的應用程序池標識的預定義賬戶有下面幾個可選項:
- ApplicationPoolIdentity 默認情況下,選擇“應用程序池標識”帳戶。啟動應用程序池時動態創建“應用程序池標識”帳戶,因此,此帳戶對於您的應用程序來說是最安全的。
- LocalService “本地服務”帳戶是用戶組的成員之一,它擁有與“網絡服務”帳戶相同的用戶權限,但僅限於在本地計算機上使用。當應用程序池中的工作進程不需要訪問它所運行在的 Web 服務器以外的內容時,可以使用此帳戶。
- LocalSystem “本地系統”帳戶擁有所有用戶權限,它是 Web 服務器上的管理員組的成員之一。應盡可能避免使用“本地系統”帳戶,因為它會給 Web 服務器帶來更嚴重的安全風險。
- NetworkService “網絡服務” 帳戶是 Users 組的成員之一,並擁有運行應用程序所需的用戶權限。通過使用計算機帳戶的憑據,它可以在整個基於 Active Directory 的網絡上進行交互。
IS6網站權限,通常配置IUSR_計算機名和NETWORK SERVICE兩個用戶權限即可:
其中IUSR_計算機名是網站匿名訪問帳戶,NETWORK SERVICE是網站應用程序池安全帳戶:
然而,同樣的權限配置,測試發現IIS7.5網站動態頁面打開會出錯。比較發現IIS7.5應用程序池安全帳戶除了本地系統、網絡服務和本地服務外,比IIS6多了一個ApplicationPoolIdentity,並且它是默認安全帳戶:
如果應用程序池選擇的是 ApplicationPoolIdentity , 這個賬戶的權限很低, 只屬於 IIS_IUSRS 用戶組, 甚至不屬於 Users 用戶組, 而應用程序又需要訪問本地文件系統 (比如日志輸出) , 就需要為 ApplicationPoolIdentity 賬戶設置 NTFS 權限, 這個賬戶在安全對話框是找不到的, 只能手工輸入 IIS APPPOOL\{app pool name} 進行設置。
通過查看 IIS_IUSRS 用戶組的屬性可以看到全部的“應用程序池標識”賬戶, 如下圖:
看下任務管理器中的變化:
這樣相當於是有了多個NETWORK SERVICE用戶,能大大降低網站被旁注的風險。當然了,也可以將IIS7.5應用程序池安全帳戶設置為網絡服務,這樣和IIS6.0一樣配置即可,但不推薦這么做。此外,若想簡單配置,只賦於網站Authenticated Users組權限也是可以的(代替匿名帳戶+安全帳戶,但比Everyone安全)。