什么替换IIS / ASP.NET站点上的.htaccess?

时间:2008-11-25 12:30:25

标签: asp.net security iis

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

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

e.g。 ASP.NET配置放在App_Data目录中的ASPNETDB.MDF文件。我认为这是默认保护,但我可以在哪里更改此文件夹的设置,因为我可以使用.htaccess文件?

5 个答案:

答案 0 :(得分:7)

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

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

我只使用了该代码段的授权部分,效果很好。处理程序应该进一步锁定它,使用ISAPI过滤器就可以对它进行最后的修改。

答案 1 :(得分:1)

好吧,如果您可以访问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/

答案 2 :(得分:1)

IIS会自动锁定对/ app_data文件夹的访问权限,并且不会从那里提供内容。

答案 3 :(得分:0)

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

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

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

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

答案 4 :(得分:0)

有两种情况:

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

对于asp.net而言,无论如何都有默认保护的文件 - 已经提到的app_data中的文件加上特定的文件类型(如.config)。此外,人们期望一个体面的主机提供无法通过网络访问的目录 - 我们提供私人和网络文件夹,既可以通过FTP访问,也可以通过网络访问后者的内容。