【问题标题】:Does user write permissions to the Temporary ASP.NET Files folder pose any security problems?用户对 Temporary ASP.NET Files 文件夹的写入权限是否会造成任何安全问题?
【发布时间】:2023-03-12 19:55:01
【问题描述】:

由于对 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(在安全中属于“用户”组)只有对该文件夹的读取权限,但没有写入权限。

问题是:

将写入权限分配给 Temporary ASP.Net Files 文件夹是否存在任何安全隐患?

这样的服务器配置更改常用吗?如果不是,为什么 WindowsIdentity 会为这种 web.config 设置组合解析为 Domain\UserName - 或者在这种情况下不应该使用这种组合?

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

【问题讨论】:

    标签: asp.net security


    【解决方案1】:

    ASP.NET 需要对临时 ASP.NET 文件夹的写入权限,如果您只授予对该文件夹的权限而不是更高权限,因为它位于 c:\windows 文件夹中,这不应该是安全风险。

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

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

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

    您可以使用 tempDirectory 属性在每个应用程序的基础上指定位置,但这并没有提供任何安全优势。

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

    【讨论】:

    • (您需要将“msdn”添加到链接的前面。)是的,但在这种情况下,web.config 设置意味着 DOMAIN\User(配置的模拟)需要写入权限并且问题具体是关于这可能产生的安全影响。 ASP.NET 进程未作为此程序集绑定的一部分。
    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 2011-12-14
    • 2016-10-07
    • 2010-11-27
    • 1970-01-01
    • 2013-03-25
    相关资源
    最近更新 更多