Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

防範搜尋引擎洩露資料庫路徑:ASP 連線字串隱藏與 #include 封裝實戰

編輯:Win7 系統應用技巧

攻擊原理:搜尋引擎成為駭客偵察工具

搜尋引擎 (Google、Yahoo、MSN) 支援「搜尋未登錄網頁」與「多關鍵字 (+)」功能。駭客搜尋 server.mappath 或 專案名 + server.mappath,即可大量獲取 ASP 連線字串片段,推導出資料庫實體路徑 (如 /xajh/data/mycalf.mdb),直接下載 .mdb → 破解密碼 → 拿下後台。

實戰演示:從搜尋到拿下資料庫

  1. 搜尋 server.mappath → 大量含連線字串的 ASP 頁面被索引。
  2. 進階搜尋 小牛江湖 + server.mappath → 精準定位目標專案:
    connstr = "DBQ=" + server.mappath("../xajh/data/mycalf.mdb") + "..."
  3. 推導完整 URL:https://www.mycalf.com/xajh/data/mycalf.mdb → 瀏覽器直接下載。
  4. Access 開啟 → 匯出會員表、管理員帳密 → 全站淪陷。

根本對策:將連線字串移出可被索引的 .asp 檔案

步驟 1:建立獨立連線檔 dbconn.asp

<%
connstr = "DBQ=" & Server.MapPath("data/data.mdb") & ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open connstr
%>

步驟 2:所有需資料庫的頁面改用 #include 引用

<!-- #include file="dbconn.asp" -->
' 後續直接使用 conn 物件操作資料庫

效果驗證

  • 搜尋引擎爬蟲只會索引 dbconn.asp 的內容 (若未被索引),或索引包含 #include 的頁面但 不會索引伺服端處理後的連線字串。
  • 駭客搜尋 server.mappath 不再能直接獲得實體路徑。

進階強化:多層防護

  1. 資料庫移出 Web 根目錄: 放置於 D:\AppData\DB\ 等非 Web 可達路徑,Server.MapPath 改用相對路徑 ../../AppData/DB/faq9jl.mdb 或直接在 DSN 指定絕對路徑。
  2. 使用系統 DSN (ODBC): ASP 僅存 conn.Open "MyDSN",徹底消除程式碼中的路徑資訊。
  3. Robots.txt 禁止收錄敏感目錄:
    User-agent: *
    Disallow: /dbconn.asp
    Disallow: /include/
  4. IIS 設定 MIME 對應拒絕 .mdb/.asa/.inc 下載: 移除 .mdb MIME 或設定處理程式為 403。

結語

「搜尋引擎駭客」利用公開索引功能低成本獲取敏感資訊。將連線字串封裝於 #include 檔案、搭配資料庫物理隔離與 DSN 抽象化,即可徹底切斷此資訊洩露鏈條。這是零成本、高效益的必做基線動作。

Copyright © Windows教程網 All Rights Reserved