Windows

我應該將哪個使用者帳戶用於 Intranet Web 應用服務?

  • November 10, 2012

我已經編寫了一個在 Windows(XP、7、2008 等)上執行的 Web 應用程序,而不是使用 MS 工具(python/django/nginx,儘管這無關緊要)。為了執行該應用程序,我創建了一個可以正常安裝和執行的 Windows 服務。

但是,應用程序將在安全性很重要的環境中執行。預設情況下,該服務會自行安裝在該Local System帳戶下執行,據我所知,該帳戶可以完全控制電腦。聽起來不是個好主意。

我也見過Network Service使用過的,但描述傾向於談論域等。此應用程序使用網路並在 Windows 上執行,但根本不會說“Windows”。它是自包含的,並將其數據保存在“通用應用程序數據文件夾”...\All Users\Application Data中。

我應該使用Network Service嗎?我應該創建自己的帳戶嗎?在 unix 上我會,但不確定 Windows 上的“陷阱”。使用現有帳戶會更容易。

由於您來自 Unix 背景,因此您應該習慣於在非特權環境下執行。許多 Windows 開發人員沒有這種背景,因此,我們在 Windows 生態系統中有很多需要過度特權的服務。我很高興聽到您質疑以“LocalSystem”身份執行的必要性。

作為一個注重安全的 Windows 系統管理員,我希望我的所有服務都在非特權使用者帳戶下執行,或者在執行服務的伺服器電腦本地,或者,如果該服務絕對需要通過 Microsoft 網路訪問其他電腦上的資源,一個域帳戶。

我個人不喜歡任何“Local Service”“Network Service”等上下文,因為它們不是我可以專門控制其參數的使用者帳戶。值得注意的是,“本地服務”始終使用空會話(匿名憑據)訪問遠端電腦,並且該行為不能與普通使用者帳戶重複。儘管如此,與“本地服務”相比,我更喜歡明確指定的非特權使用者,但“本地服務”也是一個完全合理的選擇。如果您編寫程式碼以作為“本地服務”工作,那麼它也應該可以作為非特權使用者正常工作,除非您在“本地服務”上寫入一些明確的依賴關係。

引用自:https://serverfault.com/questions/447423