【问题标题】:How to restrict folder access in asp.net如何在asp.net中限制文件夹访问
【发布时间】:2011-04-16 03:58:48
【问题描述】:

如何在 asp.net 中限制文件夹访问 就像我不希望任何其他人通过链接在浏览器中看到我的上传文件夹http://www.example.com/Uploads

【问题讨论】:

  • 这个的默认设置应该是不可浏览的

标签: asp.net security


【解决方案1】:

您应该在该文件夹中添加一个 web.config 文件,并在文件中添加一个<authorization> 标签,如described here

【讨论】:

    【解决方案2】:

    您可以在 IIS 设置中管理文件夹浏览。,

    • 打开 IIS 管理器并导航到要管理的文件夹。

    • 在功能视图中,双击目录浏览。

    • 在“操作”窗格中,单击启用/禁用。

    这是为 IIS7 准备的。

    你也可以使用命令行。

     appcmd set config /section:directoryBrowse /enabled:true|false
    

    希望这会有所帮助...
    快乐编程,

    【讨论】:

      【解决方案3】:

      您可以像@klausbyskov 提到的那样,将<authorization /> 添加到根 web.config 中,例如:

      <location path="Admin">
          <system.web>
              <authorization>
                  <allow roles="Administrator"/>
                  <deny users="*"/>
              </authorization>
          </system.web>
      </location>
      

      或者您可以将 web.config 添加到您要允许/拒绝访问的文件夹中,其中包含以下内容:

      <?xml version="1.0"?>
      <configuration>
          <system.web>
              <authorization>
                  <allow roles="Administrator"/>
                  <deny users="*" />              
              </authorization>
          </system.web>
      </configuration>
      

      当然用你自己的规则替换&lt;allow /&gt;&lt;deny /&gt;

      【讨论】:

      • 它们都不适合我(使用 MVC4)。我看到大多数帖子都暗示了这个 东西,但我已将它添加到根目录,在每个我需要安全、经过本地和服务器测试的文件夹中......它永远无法工作......我错过了什么吗?使用 MVC 4.
      • +1 因为我可以将全文复制并粘贴到我在热服务器上创建的新 web.config 中。
      • 这些规则是否也适用于所有子文件夹?或者我必须在每个文件夹中添加一个 web.config 吗?它适用于所有文件类型吗?
      • @Nestor 我也无法让它工作,直到我发现你需要添加
      【解决方案4】:

      对于下一代来说,对我有用的答案是使用隐藏段。

      如果您想确保安全,例如Uploads 文件夹转到您的根 Web.config 并添加到 &lt;system.webServer&gt; 以下元素:

      <security>
        <requestFiltering>
          <hiddenSegments>
            <add segment="Uploads"/>
          </hiddenSegments>
        </requestFiltering>
      </security>
      

      这将阻止所有用户直接访问 Uploads 文件夹及其内容。

      【讨论】:

      • 非常有用,如果您的网站没有角色或身份验证,这非常有用
      • 非常有趣。 Microsoft 文档位于 docs.microsoft.com/en-us/iis/configuration/system.webserver/… 。它说这种机制用于保护 bin 和 app_code 路径。
      • 另请注意,这会“无意中”保护子目录。所以如果你有&lt;add segment="plugins"/&gt; 那么路径/assets/javascript/plugins/myfile.js 将被限制。
      猜你喜欢
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多