IIS 總是可以使用哪些文件副檔名?
我們正在為我們自己的應用程序提供文件,以便從 Web 伺服器(包括 IIS)下載。一個這樣的文件具有
.config
副檔名。事實證明 IIS 不會提供此服務,因為它認為它是自己的配置文件。我正在考慮使用just.configuration
來代替。這會好嗎?是否有從 IIS 提供服務的“禁止”擴展列表?
是的,有一個名為 Request Filtering 的要阻止的擴展列表,您可以執行:appcmd list config -section:system.webServer/security/requestFiltering 您將看到如下內容: … …
在我的 Windows 7 機器中,列表包括:
.asa、.asax、.ascx、.master、.skin、.browser、.sitemap、.config、.cs、
.csproj、.vb、.vbproj、.webinfo、.licx ,.resx, .resources,.mdb,.vjsproj,
.java,.jsl,.ldb,.dsdgm,.ssdgm, .lsad,.ssmap,.cd,.dsprototype,
.lsaprototype,.sdm, .sdmDocument,. mdf,.ldf,.ad,.dd,.ldd,.sd,
.adprototype, .lddprototype,.exclude,.refresh,.compiled,.msgx,.vsdisco
請注意,您還可以在您的應用程序中指定更多副檔名或允許其他副檔名,這些副檔名在您的文件夾中使用 web.config 可能不允許。
警告不要這樣做,因為 .config 文件可能包含敏感資訊。
例如,如果您將 web.config 放入應用程序中,其中包含以下內容,它將允許使用者下載 .config 文件:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <security> <requestFiltering> <fileExtensions> <remove fileExtension=".config" /> </fileExtensions> </requestFiltering> </security> </system.webServer> </configuration>
有關詳細資訊,請參閱:http ://www.iis.net/configReference/system.webServer/security/requestFiltering
最後,如果您要使用一些隨機副檔名,您需要確保 IIS 也知道要使用的 mime 類型,並且知道如果您想允許靜態文件下載將使用的副檔名,並且需要在staticContent 部分(appcmd list config -section:system.webServer/staticContent)。您也可以像上面一樣在 web.config 中配置它。