2009-07-08 71 views
5

由於對Temporary ASP.NET Files文件夾的權限不足,我遇到了程序集綁定失敗。用戶是否對「Temporary ASP.NET Files」文件夾寫入權限會造成安全問題?

應用程序使用(web.config)Forms身份驗證與Impersonate = True和IIS Windows集成身份驗證。

根據ASP.NET Identity Matrix,這意味着WindowsIdentity解析爲Domain \ UserName,並且根據ASP.NET Required Access Control Lists (ACLs),WindowsIdentity需要對Temporary ASP.NET Files文件夾具有讀/寫權限。

使用Fusion日誌查看器,我可以確認程序集綁定失敗是由於域\用戶名(屬於安全中的「用戶」組)只具有對此文件夾的讀取權限,但沒有寫入權限。

的問題是:

是否有分配的寫權限臨時ASP.Net Files文件夾中的任何安全隱患?

這樣的服務器配置變化是否常用?如果不是,那麼爲什麼WindowsIdentity會解析爲Domain.UserName以用於此Web.config設置的組合?或者是否應該在此上下文中使用此組合?

注意:只有非管理員用戶是第一個打開頁面時纔會出現此問題。如果程序集已經被編譯並存儲在Temporary ASP.NET Files中,由於管理員用戶點擊該頁面,那麼後續用戶就沒有問題了。我不希望將程序集放在GAC中。

+0

這是IIS6還是IIS7? – Kev 2010-10-15 13:52:21

回答

1

ASP.NET需要Temporary ASP.NET文件文件夾的寫入權限,它不應該是一個安全風險,因爲您只授予該文件夾的權限,並且不會因爲它位於c:\ windows文件夾內而更高。

這個MSDN article about securing ASP.NET applications建議授予對ASP.NET進程標識的臨時編譯目錄的完全控制權。我引用了相關章節:

默認情況下,創建的臨時文件,並在以下目錄編譯:

%WINNT%\ Microsoft.NET \框架{版本} \臨時ASP.NET文件

您可以使用tempDirectory屬性爲每個應用程序指定位置,但這不會提供安全性好處。

注意元素上指定的ASP.NET進程標識需要臨時編譯目錄上的完全控制訪問權限。

+0

(您需要在鏈接的前面添加「msdn」。) 是的,但在這種情況下,web.config設置意味着DOMAIN \ User(配置的模擬)需要寫入權限,問題具體是關於這可能會產生什麼安全影響。 ASP.NET進程並不是這個程序集綁定的一部分。 – 2009-07-09 08:28:28

相關問題