【问题标题】:What replaces .htaccess on IIS/ASP.NET sites?在 IIS/ASP.NET 站点上替换 .htaccess 是什么?
【发布时间】:2010-09-23 22:46:40
【问题描述】:

在 Apache/PHP 网站上,如果我想在我的网站文件夹中放置一个敏感文件,我会在该文件夹中放置一个 .htaccess 文件,这样用户就无法下载敏感文件。

IIS/ASP.NET 站点是否有类似的做法,即如果我有一个共享主机帐户并且无权访问 IIS 服务器。例如,我可以在 web.config 中执行此操作吗?

例如ASP.NET 配置放在 App_Data 目录中的 ASPNETDB.MDF 文件。我会假设这是默认受保护的,但是我可以在哪里更改此文件夹的设置,就像使用 .htaccess 文件一样?

【问题讨论】:

    标签: asp.net security iis


    【解决方案1】:

    您可以使用 web.config 执行一些操作,例如定义安全设置等... 其他时候你必须使用 HttpModules 或 HttpHandlers,看这里: http://msdn.microsoft.com/en-us/library/aa719858(VS.71).aspx

    如果没有,您可以找到不同的 ISAPI,但在这种情况下,您需要访问 IIS。 比如模拟rewrite mod apache的ISAPI:

    > http://www.codeplex.com/IIRF

    另一个问题,是的 APP_Data 中的 ASPNETDB.MDF 受到正常保护(这取决于您的管理员)。要更改路径,请更改连接字符串。

    【讨论】:

    • 当然,自 2008 年以来答案已经改变。.NET 现在为您提供了更多重定向可能性
    【解决方案2】:

    有两种情况:

    • 如果服务器使用 IIS7,则可以使用 web.config 方法为所有文件提供等效功能。
    • 如果服务器使用的是 IIS6 或更早版本(目前这是共享主机最有可能的情况),那么问题就更大了。如果您可以强制所有请求通过 ASP.NET 处理程序(通常需要访问服务器进行配置),那么 web.config 方法将再次起作用,但否则您将需要其他工具和有同情心的托管服务提供商.仅出于这个原因,人们可能想要 IIS7...

    也就是说,对于 asp.net,无论如何都有默认情况下受保护的文件 - app_data 中的文件(如前所述)以及特定的文件类型(如 .config)。此外,人们会期望一个体面的主机提供一个无法通过网络访问的目录 - 我们提供一个私有文件夹和一个网络文件夹,两者都可以通过 FTP 访问,但只能通过网络访问后者的内容。

    【讨论】:

      【解决方案3】:

      在 ASP.Net web.config 中,您可以设置位置以增加特定文件和文件夹的安全性。此外,您可以从这些目录中删除所有动词:

      <location path="Secret" allowOverride="false">
        <system.web>
          <authorization>
            <deny users="*" />
          </authorization>
          <httpHandlers>
            <remove path="*.*" verb="*"/>
          </httpHandlers>
        </system.web>
      </location>
      

      我只使用了该 sn-p 的授权部分,效果很好。处理程序应进一步锁定它,并使用 ISAPI 过滤器对其进行最后润色。

      【讨论】:

        【解决方案4】:

        好吧,如果您可以访问 IIS 设置,UrlScan 可以提供帮助。对于 IIS 7,请求过滤有很大帮助。

        http://learn.iis.net/page.aspx/473/using-urlscan

        http://learn.iis.net/page.aspx/143/how-to-use-request-filtering/

        【讨论】:

          【解决方案5】:

          根据[documentation on Application Folders][1],IIS 不会为存储在/app_data 文件夹中的内容提供请求,尽管您的应用程序可以读取这些文件并与之交互。

          ASP.NET 可以识别某些文件夹名称,您可以将这些名称用于特定类型的内容。下表列出了保留的文件夹名称和文件夹通常包含的文件类型。

          注意

          应用程序文件夹的内容(App_Themes 文件夹除外)不会响应 Web 请求,但可以从应用程序代码访问。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-04-21
            • 1970-01-01
            • 1970-01-01
            • 2013-06-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多