Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS + ASP + Access 架構安全性深度剖析與強化方案

編輯:關於伺服器

架構概況與風險來源

IIS + ASP + Access 曾是中小型網站(網路銀行、電子商務、BBS、查詢系統)首選組合:開發快、成本低、部署簡單。但安全短板極其明顯:
🎯 核心風險點: Access 資料庫檔案 (.mdb) 直接暴露於 Web 目錄 → 可被下載 → 加密機制脆弱 → 幾十行程式即可破解密碼 → 全庫資料淪陷。
🎯 次級風險: ASP 原始碼非編譯、表單參數透傳 URL、虛擬主機代管商道德風險。

一、資料庫被下載與破解的實戰演示

1. 直接下載

慣用命名 book.mdb、store.mdb 放在 /database/ 或根目錄 → 攻擊者輸入 https://site/database/store.mdb 直接下載。

2. 破解加密

Access 97/2000 加密演算法:使用者密碼與固定金鑰(如 86 FB EC 37 5D 44 9C FA C6 5E 28 E6 13)XOR 產生加密串,存於檔案 Offset &H42。公開解密程式碼僅 50 行,秒級破解。

結論: 防止下載是唯一有效防線,加密只是延緩時間。

二、防止資料庫被下載:兩招制勝

1. 非慣用命名 + 多層目錄隱藏

原本:/database/book.mdb
強化:/akkt/kj61/acd/av5/faq9jl.mdb

攻擊者無法透過字典掃描或推測路徑取得檔案。

2. 系統 DSN (ODBC) 完全隔離連線字串

錯誤寫法 (連線字串含路徑):

DBPath = Server.MapPath("./akkt/kj61/acd/av5/faq9jl.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath

正確寫法 (僅 DSN 名稱):

conn.Open "MyAppDSN"

DSN 於控制台 → 管理工具 → 資料來源 (ODBC) → 系統 DSN 建立,指向實體 .mdb 路徑。ASP 原始碼外洩也無法得知實體路徑與檔名。

三、ASP 原始碼保護:兩種加密方案比較

方案原理優點缺點建議場景
COM 元件 (DLL)核心邏輯編譯為 VB6/VC++ DLL,註冊 COM+,ASP 呼叫原始碼不可逆、效能佳、版本管理易開發門檻高、修改需重編譯部署核心演算法、授權驗證、加密模組
Script Encoder (screnc.exe)將 .asp/vbs/js 加密為亂碼,IIS 仍可解譯執行操作簡單、無需改代碼、即時生效非強加密,專業逆向可還原、除錯困難全站快速加密、非核心邏輯

實務建議: 核心模組走 COM 元件,其餘頁面統一用 Script Encoder 加密,平衡安全與維運效率。

四、註冊/驗證繞過防禦:Session 強制流程控制

漏洞場景: 註冊頁 reg.asp → 成功導向 hrmis.asp?page=1。攻擊者直接輸入 hrmis.asp?page=1 繞過註冊。

修正:

' reg.asp 註冊成功後
Session("RegOK") = True
Response.Redirect "hrmis.asp?page=1"

' hrmis.asp 頁面最上方
If Session("RegOK") <> True Then
  Response.Redirect "reg.asp"
End If

同理應用於登入驗證、多步驟精靈、權限控制,確保伺服端狀態機制不可繞過。

五、綜合強化成果

導入上述措施後,某電子商務系統實測:
✅ 資料庫檔案在知情路徑下仍無法下載 (NTFS 權限 + DSN 隔離)
✅ ASP 原始碼加密部署,代管商無法直接閱讀商業邏輯
✅ 註冊/登入流程強制 Session 驗證,消除 URL 參數繞過
✅ 參數化查詢全面替換字串拼接 SQL,杜絕注入風險

結語

IIS+ASP+Access 架構雖老舊,若能做到「資料庫物理隔離+DSN抽象化+原始碼加密+參數化查詢+Session流程控制」,即可將風險壓縮至可接受區間。對於新專案,強烈建議遷移至 ASP.NET Core + SQL Server/PostgreSQL + Entity Framework,從架構層面根除經典痛點。

Copyright © Windows教程網 All Rights Reserved