在Apache / PHP网站上,如果我想在我的网站文件夹中放置一个敏感文件,我会在该文件夹中放置.htaccess文件,以便用户无法下载敏感文件。
IIS / ASP.NET网站是否有类似的做法,即如果我有共享主机帐户但无法访问IIS服务器。我可以在web.config中执行此操作吗?
e.g。 ASP.NET配置放在App_Data目录中的ASPNETDB.MDF文件。我认为这是默认保护,但我可以在哪里更改此文件夹的设置,因为我可以使用.htaccess文件?
答案 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)
有两种情况:
对于asp.net而言,无论如何都有默认保护的文件 - 已经提到的app_data中的文件加上特定的文件类型(如.config)。此外,人们期望一个体面的主机提供无法通过网络访问的目录 - 我们提供私人和网络文件夹,既可以通过FTP访问,也可以通过网络访问后者的内容。