2013-07-29 61 views
11

在我的網站中,已登錄的用戶可以更改他們的個人資料圖片,並且此過程包括將上傳的圖片保存到網站根目錄中的文件夾中。正確使用<identity impersonate =「true」/>

當我測試它時,我收到一個錯誤,我應該使用權限授予對此特定文件夾的訪問權限。

我沒有在控制面板上,誰也說,他確實授予圖片文件夾閱讀WRITE權限其他了控制。

經過測試一遍,再一次同樣的錯誤,所以我編輯的web.config,其中包括:

<identity impersonate="true"/> 

而現在一切似乎很好地工作。但是,我在這裏做了什麼?有沒有安全風險?我是否授予每個人匿名訪問我的網站?

回答

10

但是,我剛剛在這裏做了什麼?

您現在正以客戶端用戶的身份運行您的網站。

是否存在安全隱患?

這取決於該帳戶在服務器上的權限。通常情況下,運行擁有許多權限的帳戶的網站是不好的做法。理想情況下,您應該將網站配置爲在您明確授予所需文件夾權限的帳戶下運行。

您的方法存在的問題是,如果另一個無法訪問指定文件夾的用戶訪問您的網站,則無法爲他工作。另一方面,如果這是預期的行爲,那麼通過模仿用戶身份你可能沒有問題。

我是否授予所有人匿名訪問我的網站?

不,這與認證無關。

+0

因爲我沒有訪問控制面板我被迫自己測試權限,因爲聯繫那個人是痛苦的。無論如何,我試圖訪問文件夾,並且它被禁止(在模仿= true),我還可以測試什麼來確保一切安全?(我甚至不知道這是否正確:() –

+0

正如我在答覆中已經解釋的,您應該不會使用模擬。 –

2

你所做的是給予用戶登錄的用戶權限。

而且模擬真實存在安全風險。

如果你是在生產,我建議你閱讀這篇文章 http://support.microsoft.com/default.aspx?scid=kb;en-us;329290

「使用模擬在web.config允許您覆蓋任何身份被配置爲應用程序在其下運行的應用程序池 - 它只是一個更好的控制身份的方法(在應用程序級別與ApplicationPool級別上),因此您可以在同一個AppPool上運行兩個應用程序,但其中一個應用程序使用模擬來使用另一個身份。「 禮貌:App pool identity versus impersonation identity?

相關問題