Asp.net

如何編輯 web.config 以停止提供 .NET Web 應用程序的特定文件類型

  • March 17, 2021

我想阻止使用者通過瀏覽器訪問某種類型的文件。例如,IIS 伺服器預設阻止對 .config 和 .vb 文件的訪問,給出錯誤消息“您請求的頁麵類型未提供,因為它已被明確禁止”,我想添加其他文件類型到這種行為。

有什麼可以添加到應用程序的 web.config 文件中的嗎?我寧願不通過使用該<authorization>元素阻止目錄訪問來處理它。

在 IIS 7+ 中,可以在應用程序級別完成請求過濾。在 web.config 中添加以下程式碼:

<system.webServer>
   <security>
       <requestFiltering>
           <fileExtensions>
               <add fileExtension=".vbs" allowed="false" />
           </fileExtensions>
       </requestFiltering>
   </security>
</system.webServer>

對於 IIS 6,上述方法不起作用,但您可以模仿 .cs 文件等頁面存在的預設阻止行為,儘管您可能必須在伺服器端進行更改。首先,將以下內容添加到您應用的 web.config 中:

<system.web>
   <httpHandlers>
       &lt;add path="*.vbs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/&gt;
   &lt;/httpHandlers&gt;
&lt;/system.web&gt;

如果 asp.net 設置為處理該文件類型,例如 .cs,那麼您就完成了。但是,如果您要阻止的文件類型由 IIS 處理,而不是 asp.net(如 .vbs),這還不夠。您必須在 IIS 管理器中進行更改以映射文件副檔名,如下所示

引用自:https://stackoverflow.com/questions/12412915