[研究]ASP.NET WebForm 網站,IIS 10 中「要求篩選」允許的所有副檔名應該包含甚麼?
2025-11-04
********************************************************************************
Windows Server 從Windows Server 2016開始,IIS為10.0版,後續 Windows Server 2019, Windows Server 2022, Windows Server 2025 也都是 10.0版,大版本號碼相同,小版本可能不同,畫面幾乎相同。
政府組態基準(Government Configuration Baseline,簡稱GCB)
TWGCB-04-014_Microsoft IIS 10政府組態基準說明文件v1.1_1141002
https://www.nics.nat.gov.tw/core_business/cybersecurity_defense/GCB/GCB_Documentation/
| 項次 | TWGCB-ID | 類別 | 原則設定名稱 | 說明 | 設定位置 | 設定路徑 | GCB設定值 |
| 31 | TWGCB-04-014-0031 | 要求篩選與其他限制模組 | 允許未列出的副檔名 | ▪這項原則設定決定是否允許未列出的副檔名在網頁伺服器上被執行 ▪限制網頁伺服器只能執行特定之檔案類型,可提升安全性 ▪在取消勾選「允許未列出的副檔名」後,必須將網站中所有使用到之副檔名(例如:.asax、.cs及.html等)加入允許清單,網頁才能正常運作 |
伺服器 | ▪取消勾選: IIS管理員\伺服器\IIS\要求篩選\動作\開啟功能\動作\編輯功能設定\一般\不勾選「允許未列出的副檔名」 ▪新增允許副檔名: IIS管理員\伺服器\IIS\要求篩選\動作\開啟功能\動作\允許副檔名 |
不允許 |
| 副檔名 | 說明 |
|---|---|
.aspx |
ASP.NET Web Form 主頁面 |
.asmx |
ASP.NET Web Service |
.ashx |
ASP.NET 一般處理常式 (HttpHandler) |
.asax |
Global Application Class(例如 Global.asax) |
.axd |
ASP.NET 系統資源追蹤或 WebResource Handler (例如 trace.axd、ScriptResource.axd) |
| 副檔名 | 說明 |
|---|---|
.ascx |
User Control 使用者控制項 |
.master |
Master Page 主版頁面 |
.browser |
瀏覽器定義檔 (App_Browsers) |
.skin |
Theme 外觀樣式設定檔 |
| 類型 | 副檔名 |
|---|---|
| HTML 與標記 | .html, .htm |
| CSS 樣式 | .css |
| JavaScript | .js |
| 影像 | .jpg, .jpeg, .png, .gif, .ico, .bmp, .svg |
| 字型 | .woff, .woff2, .ttf, .eot |
| 文件下載 | .pdf, .txt, .xml, .csv, .json(依實際網站需求開放) |
| 副檔名 | 說明 |
|---|---|
.sitemap |
ASP.NET 網站導覽設定檔 |
.config |
應用程式設定檔(建議禁止直接存取) |
.dll |
組件(應禁止直接請求) |
| 類型 | 副檔名 | 說明 |
|---|---|---|
| 原始碼 | .cs, .vb, .csproj, .vbproj, .resx, .resources |
|
| 組態或專案描述 | .webinfo, .vjsproj, .sln, .config(應封鎖外部直接請求) |
|
| 伺服器內部檔案 | .dll, .pdb, .exe, .bat, .cmd, .msi, .ps1, .reg |
.aspx .asmx .ashx .axd .asax .ascx .master .skin .browser .sitemap .html .htm .css .js .jpg .jpeg .png .gif .ico .bmp .svg .woff .woff2 .ttf .eot .pdf .txt .xml .json .csv |
📘 四、參考資料來源
Microsoft Docs — Request Filtering <fileExtensions> element (IIS)
https://learn.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/fileextensions/
Microsoft Docs — ASP.NET Web Forms Overview
https://learn.microsoft.com/en-us/aspnet/web-forms/
Web Site File Types
https://learn.microsoft.com/en-us/previous-versions/aspnet/2wawkw1c(v=vs.100)
********************************************************************************
保證不會有缺漏嗎 ?
ChatGPT
這是一個非常專業也很實際的問題 👍。
答案是──沒有任何單一副檔名清單能「百分之百保證」涵蓋所有 ASP.NET WebForm 網站的需求,但我們可以做到在標準 ASP.NET WebForm 架構下,100% 確保「正常運作不會受影響」且「安全上符合 GCB」。
以下是完整的技術說明與「保證層級」:
🧱 一、為什麼不能「保證」一份清單完全通用
即使都是 WebForm 專案,不同的網站仍可能包含:
第三方控制項套件(如 DevExpress、Telerik、Crystal Reports)
→ 這些控制項可能會使用額外副檔名,例如 .axd, .xap, .swf, .rdlc, .rpt。
自訂 MIME 類型(如前端工程整合)
→ 例如 .map(JS source map)、.json, .csv, .ts, .mjs。
自訂 Handler / Module
→ 開發人員可能在 web.config 中自行註冊 .foo, .data 等自訂副檔名。
所以:
✅ 我能給你「標準 ASP.NET WebForm 官方完整副檔名清單」,
⚠️ 但仍需以實際專案掃描或監控確認是否有額外需求副檔名。
✅ 二、標準 ASP.NET WebForm 官方完整副檔名清單
(含 Microsoft 官方文件中所有 ASP.NET 可能載入的檔案類型)
| 類別 | 副檔名 | 說明 |
|---|---|---|
| 主程式頁面 | .aspx |
ASP.NET WebForm 主頁面 |
| Web Service | .asmx |
ASP.NET Web Service |
| HttpHandler | .ashx |
一般處理常式 |
| 應用程式事件 | .asax |
Global Application File |
| 系統追蹤/資源 | .axd |
ScriptResource.axd, Trace.axd |
| 使用者控制項 | .ascx |
User Control |
| 主版頁 | .master |
Master Page |
| 佈景樣式 | .skin |
Theme Skin File |
| 瀏覽器定義 | .browser |
App_Browsers 設定檔 |
| 網站導覽 | .sitemap |
SiteMap |
| 設定檔 | .config |
Web.config, Machine.config(不可公開存取) |
| 資源檔 | .resx, .resources |
多語系資源檔(不可公開存取) |
| 編譯後組件 | .dll |
應用程式組件(不可公開存取) |
| 靜態內容 | .html, .htm, .css, .js, .jpg, .jpeg, .png, .gif, .bmp, .ico, .svg |
|
| 字型檔 | .woff, .woff2, .ttf, .eot |
|
| 資料格式檔 | .xml, .json, .csv, .txt, .pdf |
|
| 前端附加格式(視需求) | .map, .webmanifest, .mp4, .webp(若網站前端用到) |
- 啟用 Request Filtering → 預設封鎖所有副檔名。
- 逐步啟用白名單(依上表),重新載入整個網站。
- 用 Fiddler、IIS log、或 Developer Tools → 觀察 404.7 (Request Filtering Denied) 錯誤。
- 若有 404.7,代表有缺漏副檔名,再依實際需求加回。
- 保證網站實際執行無誤;
- 又確保沒有多餘副檔名開放,符合 GCB 第31條安全要求。
| 類別 | 副檔名 | 來源 / 套件 / 用途 |
|---|---|---|
| Excel / Office 文件 | .xls, .xlsx, .xlsm |
ClosedXML, Aspose.Cells, NPOI |
| 壓縮檔 | .zip |
ProDotNetZip, SharpZipLib, FreeDataExports |
| Swagger / OpenAPI 文件 | .swagger |
Swashbuckle(如果有生成 swagger JSON UI) |

沒有留言:
張貼留言