2026年1月19日 星期一

[研究]GCB,IIS,要求篩選,列出某目錄(含子目錄)所有副檔名種類的 .bat,需要明確允許名單

[研究]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 除錯符號檔 ❌ (建議封鎖) 不需要用戶端存取。
.pdf 文件 / 靜態檔案 用戶端請求需要允許。
.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 除錯符號檔 ❌ (建議封鎖) 不需要用戶端存取。
.pdf 文件 / 靜態檔案 用戶端下載需允許。
.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)。

(完)

相關

沒有留言:

張貼留言