用户是否对Temporary ASP.NET Files文件夹写入权限会造成任何安全问题?

时间:2009-07-08 06:30:24

标签: asp.net security

由于对Temporary ASP.NET Files文件夹的权限不足,我遇到了程序集绑定失败。

应用程序使用(web.config)使用Impersonate = True和IIS Windows集成身份验证进行表单身份验证。

根据ASP.NET Identity Matrix,这意味着WindowsIdentity解析为Domain \ UserName,并且根据ASP.NET Required Access Control Lists (ACLs),WindowsIdentity需要对Temporary ASP.NET Files文件夹的读/写权限。

使用Fusion日志查看器,我可以确认程序集绑定失败是由于Domain \ UserName(属于安全性中的“Users”组)只对该文件夹具有读取权限,而不是写入权限。

问题是:

为Temporary ASP.Net Files文件夹分配写权限是否有任何安全隐患?

这种服务器配置是否经常使用?如果没有,为什么WindowsIdentity会为这个web.config设置组合解析为Domain \ UserName - 或者是否应该在此上下文中使用此组合?

注意:仅当非管理员用户是第一个点击该页面时才会出现此问题。如果由于管理员用户访问页面而已将程序集编译并存储在临时ASP.NET文件中,则后续用户不会遇到任何问题。我不希望将程序集放在GAC中。

1 个答案:

答案 0 :(得分:1)

ASP.NET要求对Temporary ASP.NET文件文件夹具有写入权限,如果您只授予该文件夹的权限而不是更高级别,则不应该存在安全风险,因为它位于c:\ windows文件夹中。

MSDN article about securing ASP.NET applications建议授予对ASP.NET进程标识的临时编译目录的完全控制权。我引用了相关章节:

  

默认情况下,临时文件在以下目录中创建和编译:

     

%winnt%\ Microsoft.NET \ Framework {version} \ Temporary ASP.NET Files

     

您可以使用tempDirectory属性在每个应用程序的基础上指定位置,但这不会带来任何安全优势。

     

注意元素上指定的ASP.NET进程标识需要临时编译目录的完全控制访问权限。