首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Access 資料庫防下載九大實戰策略:從偽裝到加密的纵深防禦

     編輯:關於SqlServer

威脅模型

ASP + Access 架構中,資料庫檔案 (`.mdb`) 若置於 Web 根目錄下,攻擊者可直接透過 HTTP 下載,導致完整資料外洩。本文提供九層防禦策略,建議組合使用。

策略一:不可預測的檔案名稱

使用 GUID、雜湊值或長隨機字串命名 (如 `a7f3k9x2.mdb`),並在連線字串中對應。
缺點: 僅靠隱匿性,一旦路徑洩露 (錯誤訊息、原始碼、備份檔) 即失效。

策略二:副檔名偽裝為 .asp/.asa + 內嵌 ASP 標記

  1. 將 `.mdb` 改名為 `.asp` (如 `data.asp`)。
  2. 在 Access 中新增 OLE 物件欄位,插入一個內容為 `<%` 的文字檔 (需用記事本建立檔案 → Access「插入物件」→「從檔案建立」)。
  3. IIS 解析 `.asp` 時遇到 `<%` 會嘗試執行,拋出 500 錯誤,阻斷下載。

原理: Access 文字欄位會 HTML 編碼 `<%` 為 `<%` 失效,唯有 OLE 物件保留原始二進位內容。

策略三:檔名前綴 `#` 或內嵌空格

  • 命名為 `#data.mdb` 或 `data 1.mdb`。
  • HTTP 請求中 `#` 後內容為片段識別碼不會傳送至伺服器;空格會被 URL 編碼為 `%20`,導致實體路徑不匹配。

缺點: 部份下載工具/瀏覽器行為不一,非絕對可靠。

策略四:資料庫級加密 + 密碼保護

  1. 工具 → 安全性 → 加密/解密資料庫 → 另存為加密版本。
  2. 以「獨佔模式」開啟加密版本 → 工具 → 安全性 → 設定資料庫密碼。

連線字串更新:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=...;Jet OLEDB:Database Password=YourPwd;
警告: Jet/ACE 加密演算法較弱 (XOR 為基礎),專用工具可在秒級破解,**不可作為唯一防線**。

策略五:將資料庫移至 Web 根目錄之外

最有效、最標準的做法。 實體檔案放在 `C:\AppData\Databases\` 等非公開路徑,連線字串使用絕對路徑或 `Server.MapPath("../data/db.mdb")`。
IIS 無法直接透過 URL 存取,徹底斷開下載路徑。

策略六:IIS 處理對應映射封鎖 .mdb 下載

  • IIS 管理員 → 網站 → 處理對應 → 新增 `.mdb` 對應至 `C:\Windows\System32\inetsrv\404.dll` (或自訂 ISAPI 回傳 404/403)。
  • 或在 `web.config` (ASP.NET) 設定 ``。

策略七:NTFS 權限最小化

  • 資料庫檔案 ACL 僅授予:
    — SQL Server 服務帳號 (若用 SQL Server 掛載)
    — 應用程式集區身分識別 (ApplicationPoolIdentity)
    — 管理員群組
    明確拒絕 `IUSR`、`Everyone`、`Authenticated Users`。

策略八:遷移至 SQL Server Express / LocalDB

Access 為檔案型資料庫,本質上難以在 Web 環境安全部署。遷移至 SQL Server Express (免費)、LocalDB (輕量) 或 Azure SQL,獲得:
— 服務型架構,無檔案直連風險
— 完整權限模型、稽核、加密 (TDE、Always Encrypted)
— 並發效能、備份/還原/高可用

策略九:定期稽核與滲透測試

  • 掃描網站目錄確認無 `.mdb`、`.accdb`、`.bak` 暴露。
  • 使用工具 (OWASP ZAP、Nikto) 檢測敏感檔案洩露。
  • 代碼審查確認連線字串未硬編碼在前端/JS/備註中。

防禦等級總結

等級措施有效性維護成本
基礎策略 1-3 (偽裝)低低
中等策略 4 (加密) + 6 (IIS 封鎖)中中
高策略 5 (移出 Web 根目錄) + 7 (NTFS)高低
最佳策略 8 (遷移 SQL Server) + 9 (稽核)極高中 (一次性遷移成本)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved