如何给windows web服务器目录权限?

时间:2012-02-13 21:59:08

标签: c# xml permissions webserver

我有一个Windows Web服务器,我正在使用xml for web.config我目前将.exe,.bin和.dll的扩展权限设置为false

但我在其中创建了一个名为“thing”的目录,其中包含.exe,我想为该目录编写xml权限,允许我从中下载.exe文件

 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>
     <system.webServer>
         <security>
             <requestFiltering>
                 <fileExtensions>
                     <add fileExtension=".dll" allowed="false" />
                     <add fileExtension=".exe" allowed="false" />
                     <add fileExtension=".bin" allowed="false" />
                 </fileExtensions>
             </requestFiltering>
         </security>
     </system.webServer>
 </configuration>

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

IIS7 documentation中,您可以在<requestFiltering>中使用3个标记来控制网址访问:

  • <denyUrlSequences> - 此元素可以包含IIS 7将拒绝的URL序列模式的集合;例如:您可以拒绝攻击者可能试图利用的部分URL序列。
  • <fileExtensions> - 此元素可以包含IIS 7将拒绝或允许的文件扩展名集合;例如:您可以阻止对Web.config文件的所有请求。
  • <hiddenSegments> - 此元素可以包含无法浏览的网址集合;例如:您可以拒绝ASP.NET App_Code文件夹的请求。

例如:

<requestFiltering>
    <!-- deny access to any URL which contains /private -->
    <denyUrlSequences>
       <add sequence="/private"/>
    </denyUrlSequences>
    <!-- block all file extensions except js,css,html -->
    <fileExtensions allowUnlisted="false">
       <add fileExtension=".js" allowed="true" />
       <add fileExtension=".css" allowed="true" />
       <add fileExtension=".html" allowed="true" />
    </fileExtensions>
    <!-- hide config and bin dir -->
    <hiddenSegments>
       <add segment="config" />
       <add segment="bin" />
    </hiddenSegments>
</requestFiltering>

您可以隐藏某些网址或阻止某些文件扩展名,但据我所知,只有更改IIS配置,才能通过文件夹微调特定文件扩展名的可访问性。如果这是你想要的,你可能需要编写一些服务器端代码。