作者因卸載 FTP 重裝 IIS 未打最新修補程式,導致 Translate: f 漏洞被利用竊取資料庫連線字串,痛定思痛,全面重構安全策略。
建議結構:
D:\Web\ASPTest\
├── static\ (*.htm) → Everyone:R
├── script\ (*.asp) → IIS:R/X, NTFS: Admin+System:F, Everyone:R
├── include\ (*.inc 連線字串) → NTFS: Everyone:R, IIS:「拒絕讀取」
├── images\ (*.gif, *.jpg) → Everyone:R
關鍵技巧:include 資料夾 NTFS 允許 Everyone 讀取,但 IIS 設定「拒絕讀取」。ASP 伺服端 可正常讀取 (NTFS 允許),但瀏覽器直接請求 /include/conn.inc 被 IIS 擋下。內建帳號 IUSR_*/IWAM_* 成為精準控制對象。
conn.inc 變數儲存連線字串。include 資料夾。Server.CreateObject("ADODB.Connection") → conn.Open connStr。include 設定「拒絕讀取」。.htr (可重設密碼)、.hta (HTML Application 高風險)、.idc (舊式資料連接)、.printer、.htw/.ida/.idq (索引服務) 等不用的對應。安全無絕對,分層防禦、最小權限、持續修補、日誌審計、目錄權限與 IIS 權限雙重審核,構建 ASP 網站生存之道。