ASP/ASP.NET 經典架構中,資料庫檔案 (.mdb/.accdb) 若置於 Web 根目錄下,極易被直接下載導致資料外洩。本文提供兩大核心防護策略,零成本大幅提升資料庫安全性。
.mdb (或 .accdb)asp.dll (或任意合法 DLL,如 c:\windows\system32\asp.dll)GET,HEAD,POST (或留空)https://site/data.mdb 將觸發 ASP 處理管線,回傳 404/500 而非檔案內容。原理:IIS 依副檔名對應處理器;將 .mdb 導向 ASP ISAPI,IIS 嘗試以 ASP 腳本解析二進位資料庫檔,失敗並拒絕服務,達到「無法直接下載」目的。
| 目錄/檔案類型 | 寫入權限 | 執行權限 (IIS) | 說明 |
|---|---|---|---|
| 網站根目錄、程式碼目錄、靜態資源 | 否 (僅讀) | 僅「腳本」或「無」 | 防止惡意檔案寫入與執行 |
| data/ (資料庫檔) | 是 (僅 APP_POOL 身分) | 無 | 資料庫唯讀/寫入,不可執行 |
| uploadfile/、uploadface/、previewimage/ | 是 (僅 APP_POOL 身分) | 無 | 上傳目錄嚴禁執行,木馬落地也跑不起來 |
| backupdata/ (備份) | 否 (僅備份帳號) | 無 | 離線備份,Web 程序不可觸碰 |
| Skins/、config/ 等需動態生成目錄 | 視需求最小化 | 無 | 嚴格限制寫入者身分 |
D:\AppData\DB\ 等非公開路徑,連線字串用實體路徑,根絕 URL 存取可能。web.config <connectionStrings> 區段使用 aspnet_regiis -pef 加密。.mdb/.bak/.sql/.asa 等敏感副檔名請求。/data.mdb → 404/403/500,非 200 OK 下載。shell.asp 至 uploadfile → 訪問 → 404/403/500,不執行。「封鎖直連下載」+「目錄寫入/執行權限分離」雙重保障,讓資料庫檔案在 Web 層面徹底隱身,木馬落地也無處施展,以最小成本構築堅實資料防線。