如何禁止使用web.config文件?

如何禁止使用web.config文件?

我有一台安装了 IIS7.5 的 Windows 2008 R2 服务器。我需要通过 WebDAV 为用户提供对某些目录树的读写访问权限。相同的用户还可以通过其他方式(FTP、SFTP、CIFS 等)访问相同的目录。

我的目的:我不希望有人能够上传/修改已发布文件夹中的 web.config 文件,从而修改 IIS 的行为。如果创建了这样的文件,IIS 应该将其视为任何其他文件。

是否可以将站点的所有设置集中在 applicationHost.config 中或已发布树之外的任何其他文件中,并让 IIS 忽略任何其他 web.config 文件?

谢谢!

答案1

找到相关设置 - 它被称为allowSubDirConfigvirtualDirectoryDefaults。它既可以在元素中指定(针对所有站点),也可以在文件virtualDirectory中的元素中指定applicationHost.config

例子:

<configuration>
    <system.applicationHost>
       <sites>
            <site name="Default Web Site" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
                    <virtualDirectory path="/Temp" physicalPath="C:\TempRoot" allowSubDirConfig="false" />
                </application>
            <applicationDefaults applicationPool="DefaultAppPool" />
            <virtualDirectoryDefaults allowSubDirConfig="true" />
        </sites>
    </system.applicationHost>
</configuration>

web.config/Temp 虚拟目录下的文件将不会被检查。

还有一些其他方法: http://www.sourceinaction.com/blog/web.config-dependencies-for-multiple-asp.net-web-applications

答案2

请看 Anil Ruia 的回答:http://forums.iis.net/t/1161527.aspx?Disable+creating+web+configs+in+each+folder

如果您转到 applicationhost.config 并锁定所有部分 (overrideModeDefault="Deny"),则 IIS 管理器会将所有 IIS 配置设置写入 applicationhost.config(asp.net 配置设置和根 web.config 文件相同)。请注意,这将完全阻止某人使用 web.config 文件覆盖 IIS 设置 - 他们可能会对此大喊大叫。

答案3

避免用户使用 WebDav 修改 web.config 文件的一个简单方法是使用 WebDav 创作规则。只需在所有其他规则之上创建一条规则,使所有用户对 web.config 文件无任何权限。

更多详细信息:如果您通过 GUI 启用并配置了 WebDav,那么您应该已经知道 [WebDav 创作规则] 是通过 IIS GUI 上的图标访问的。首先,您在站点级别进入该部分以启用 WebDav,然后再次进入 WebDav 文件夹级别的 [WebDav 创作规则] 部分以添加规则以授予用户/组对此文件夹中的 [所有文件] 的访问权限。在输入该规则之前,您添加一个仅适用于 [web.config] 文件的规则 [所有用户],并且您未选中所有权限。因此,该规则位于顶部,并且优先于授予访问权限的规则,因此没有人可以使用 WebDav 来修改 web.config 文件。如果需要,您还可以在创建后修改规则的顺序。

此页面描述了如何为 WebDav 配置站点。我使用了 GUI 方法。如果您按照此方法操作,就会发现该部分的位置很明显:https://www.server-world.info/en/note?os=Windows_Server_2019&p=iis&f=9

相关内容