tro*_*tro 2 asp.net security iis iis-6
语境:
我想不要提供一些文件.例如,hibernate.cfg.xml
根目录中有一个不应该可访问的.日志目录中还有日志文件.在本地开发服务器上(Visual Studio 2008)可以通过Web.config以两种方式保护NHibernate配置文件:
<location path="hibernate.cfg.xml">
<system.web>
<authorization>
<deny users="?"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
要么
<httpHandlers>
...
<add path="*.cfg.xml" verb="*" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)
可以通过另一个Web.config文件保护不同目录中的日志:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
当使用aspnet_compiler.exe编译应用程序并将其部署到IIS 6服务器时,这些都不起作用.日志中没有错误.任何人都可以读取这些文件.使用MSBuild编译和安装应用程序,如下所示:
<AspNetCompiler Force="true" Debug="true" PhysicalPath="$(DeploymentTempPath)\$(DeploymentAppName)" TargetPath="$(DeploymentPath)\$(DeploymentAppName)" VirtualPath="/$(DeploymentAppName)" />
Run Code Online (Sandbox Code Playgroud)
如何使IIS 6尊重Web.config中的授权规则.
注意:假设我无法将这些文件移到部署目录之外.
归档时间: |
|
查看次数: |
6591 次 |
最近记录: |