[研究]GCB,IIS,要求篩選,列出某目錄(含子目錄)所有副檔名種類的 .bat,需要明確允許名單
2025-01-16
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 20.2
********************************************************************************
.bat 內容
@echo off
set "folder=D:\Production\OT"
set "tmpfile=%temp%\extlist.txt"
if exist "%tmpfile%" del "%tmpfile%"
for /r "%folder%" %%f in (*) do (
echo %%~xf >> "%tmpfile%"
)
sort "%tmpfile%" /unique
del "%tmpfile%"
|
測試
********************************************************************************
【考慮副檔名有多節,全部副檔名相同才算相同,否則算不同】
.bat 內容
@echo off
setlocal enabledelayedexpansion
set "folder=D:\目錄\子目錄"
set "outfile=extensions.txt"
type nul > "%outfile%"
for /r "%folder%" %%f in (*) do (
set "name=%%~nxf"
if not "!name!"=="!name:.=!" (
set "ext=.!name:*.=!"
echo !ext!>>"%outfile%"
)
)
sort "%outfile%" /unique
|
測試
********************************************************************************
IIS 10.0 要求篩選,"允許未列出的副檔名" 若不勾選,
"允許副檔名" 新增 .aspx,那
abd.aspx
abd.def.aspx
是否都可以執行?還是只有第一個可執行?第2個不可執行?
它以最後一節判斷?還是全部副檔名判斷?
ChatGPT
結論先講:IIS 是「只看最後一節副檔名」來判斷。
敝人實際測試,確實「只看最後一節副檔名」來判斷。
********************************************************************************
【實測】
一個很簡單的 ASP.NET WebFom 網站
.aspx .config .dll .exe .pdb .rsp .targets |
| 副檔名 | 用途 | 瀏覽器可請求 | 正式站台 |
|---|---|---|---|
.aspx |
Web 頁面 | ✅ | ✅ |
.config |
組態設定 | ❌ | ✅ |
.dll |
已編譯程式碼 | ❌ | ✅ |
.exe |
可執行檔 | ❌ | ❌ |
.pdb |
除錯資訊 | ❌ | ❌ |
.rsp |
編譯參數 | ❌ | ❌ |
.targets |
MSBuild 規則 | ❌ | ❌ |
ChatGPT 說需要明確允許的只有 .aspx
*****
ASP.NET WebFom 網站O
.ascx .aspx .compiled .config .css .dll .eot .gif .htm .html .jpg .js .map .master .otf .pdb .pdf .png .pptx .scss .svg .ttf .txt .woff .woff2 .xlsx |
| 副檔名 | 用途 / 存取方式 | 是否需要明確允許 | 說明 |
|---|---|---|---|
| .ascx | ASP.NET User Control(嵌入頁面片段) | ✅ | 需要允許,否則無法被 .aspx 載入。 |
| .aspx | ASP.NET WebForm 頁面 | ✅ | 必須允許才能執行頁面。 |
| .compiled | ASP.NET 編譯後的控制項 / 頁面 | ❌ | 內部使用,非 HTTP 存取,Request Filtering 不影響。 |
| .config | web.config / app.config | ❌ (建議封鎖) | 不建議允許 HTTP 存取,避免洩漏設定。 |
| .css | 樣式表 | ✅ | 靜態檔案,需要允許才能載入。 |
| .dll | .NET 程式集檔案 | ❌ | 內部載入,不受 Request Filtering 影響。 |
| .eot | 字型檔 (Embedded OpenType) | ✅ | 用戶端請求需要允許。 |
| .gif | 靜態圖片 | ✅ | 用戶端請求需要允許。 |
| .htm / .html | 靜態網頁 | ✅ | 用戶端請求需要允許。 |
| .jpg | 靜態圖片 | ✅ | 用戶端請求需要允許。 |
| .js | JavaScript 檔案 | ✅ | 用戶端請求需要允許。 |
| .map | JavaScript / CSS source map | ✅ | 用戶端調試需要允許(非必要,可依需求封鎖)。 |
| .master | ASP.NET Master Page | ✅ | 必須允許,否則 .aspx 無法正確引用。 |
| .otf | 字型檔 (OpenType) | ✅ | 用戶端請求需要允許。 |
| .pdb | 除錯符號檔 | ❌ (建議封鎖) | 不需要用戶端存取。 |
| 文件 / 靜態檔案 | ✅ | 用戶端請求需要允許。 | |
| .png | 靜態圖片 | ✅ | 用戶端請求需要允許。 |
| .pptx | Office 文件 | ✅ | 用戶端請求需要允許。 |
| .scss | SASS 原始檔案 | ❌ (建議封鎖) | 不應提供給用戶端,僅編譯成 CSS 使用。 |
| .svg | 向量圖檔 | ✅ | 用戶端請求需要允許。 |
| .ttf | 字型檔 (TrueType) | ✅ | 用戶端請求需要允許。 |
| .txt | 純文字檔 | ✅ | 用戶端請求需要允許。 |
| .woff | 字型檔 (Web Open Font Format) | ✅ | 用戶端請求需要允許。 |
| .woff2 | 字型檔 (Web Open Font Format 2) | ✅ | 用戶端請求需要允許。 |
| .xlsx | Excel 文件 | ✅ | 用戶端請求需要允許。 |
**********
ASP.NET WebFom 網站S
.7z .asax .ascx .aspx .config .css .csv .dll .doc .docx .eot .exe .flow .gif .htm .html .ico .js .json .lic .map .Master .md .msg .ods .odt .pdb .pdf .png .pptx .rsp .sitemap .svg .targets .thmx .ttf .ttinclude .txt .vue .woff .woff2 .xlsx .xml |
| 副檔名 | 用途 / 存取方式 | 是否需要明確允許 | 說明 |
|---|---|---|---|
| .7z | 壓縮檔,用戶端下載 | ✅ | 用戶端請求需允許。 |
| .asax | ASP.NET 應用程式 Global.asax | ✅ | 用戶端請求需允許(ASP.NET 初始化時使用)。 |
| .ascx | ASP.NET User Control | ✅ | 必須允許,否則 .aspx 無法載入控制項。 |
| .aspx | ASP.NET WebForm 頁面 | ✅ | 必須允許才能執行頁面。 |
| .config | web.config / app.config | ❌ (建議封鎖) | 敏感檔案,不應允許 HTTP 存取。 |
| .css | 樣式表 | ✅ | 靜態檔案,需要允許才能載入。 |
| .csv | 用戶端下載 / 匯出 | ✅ | 靜態檔案,需要允許。 |
| .dll | .NET 程式集檔案 | ❌ | 內部載入,不受 Request Filtering 影響。 |
| .doc / .docx | Office 文件 | ✅ | 用戶端請求需允許。 |
| .eot | 字型檔 (Embedded OpenType) | ✅ | 用戶端請求需允許。 |
| .exe | 執行檔 | ❌ (建議封鎖) | 不應允許 HTTP 存取,安全風險高。 |
| .flow | 流程檔案 / 專案檔(內部使用) | ❌ (建議封鎖) | 不需要用戶端存取。 |
| .gif | 靜態圖片 | ✅ | 用戶端請求需允許。 |
| .htm / .html | 靜態網頁 | ✅ | 用戶端請求需允許。 |
| .ico | 圖示 / favicon | ✅ | 用戶端請求需允許。 |
| .js | JavaScript | ✅ | 用戶端請求需允許。 |
| .json | 靜態資料 / 配置檔 | ✅ | 用戶端請求需允許(如前端 AJAX)。 |
| .lic | 授權檔案 | ❌ (建議封鎖) | 不應公開,避免洩漏授權資訊。 |
| .map | JS / CSS source map | ✅ | 用於開發 / 調試,非必要可封鎖。 |
| .master | ASP.NET Master Page | ✅ | 必須允許,否則 .aspx 無法正確引用。 |
| .md | Markdown 文件 | ✅ | 用戶端下載 / 查看需允許。 |
| .msg | Outlook 郵件檔 | ✅ | 用戶端下載需允許。 |
| .ods / .odt | OpenDocument 文件 | ✅ | 用戶端下載需允許。 |
| .pdb | 除錯符號檔 | ❌ (建議封鎖) | 不需要用戶端存取。 |
| 文件 / 靜態檔案 | ✅ | 用戶端下載需允許。 | |
| .png | 靜態圖片 | ✅ | 用戶端請求需允許。 |
| .pptx | Office 文件 | ✅ | 用戶端請求需允許。 |
| .rsp | 編譯回應 / Response files | ❌ (建議封鎖) | 內部使用,不需要用戶端存取。 |
| .sitemap | 網站導覽檔 | ✅ | 用戶端或搜尋引擎請求需允許。 |
| .svg | 向量圖檔 | ✅ | 用戶端請求需允許。 |
| .targets | MSBuild Targets | ❌ (建議封鎖) | 內部使用,不需要用戶端存取。 |
| .thmx | PowerPoint / Office 主題文件 | ✅ | 用戶端下載需允許。 |
| .ttf | 字型檔 (TrueType) | ✅ | 用戶端請求需允許。 |
| .ttinclude | Web / 模板包含檔(專案內部) | ❌ (建議封鎖) | 內部使用,不需要用戶端存取。 |
| .txt | 純文字檔 | ✅ | 用戶端請求需允許。 |
| .vue | Vue 前端程式檔案 | ✅ | 用戶端請求需允許(如果直接暴露在網站上)。 |
| .woff | 字型檔 (Web Open Font Format) | ✅ | 用戶端請求需允許。 |
| .woff2 | 字型檔 (Web Open Font Format 2) | ✅ | 用戶端請求需允許。 |
| .xlsx | Excel 文件 | ✅ | 用戶端請求需允許。 |
| .xml | 靜態資料 / 配置檔 | ✅ | 用戶端請求需允許(如 sitemap.xml 或 API)。 |
(完)
相關


沒有留言:
張貼留言