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

ASP 網站安全防範實戰:從 SQL 注入到木馬上傳的完整防禦體系

     編輯:Java 相關知識

核心原則

安全非單一環節,須貫穿「代碼審計、最小權限、輸入驗證、輸出編碼、錯誤處理、日誌審計」全生命週期。免費開源碼同樣會被攻擊者研究,細節防護決定成敗。

八大高風險場景與防禦對策

1. 資料庫連線帳密洩露

  • 連線字串移至伺服器端 COM 組件或加密配置檔。
  • 資料庫帳號僅授予「執行預存程序」最小權限,嚴禁直接 DML 權限。
  • 帳密放入隱蔽命名的 .inc 檔,或改用 .asp 副檔名防直接瀏覽。

2. 驗證繞過

  • 每頁驗證 Request.ServerVariables("HTTP_REFERER") 來源頁面,非法來源直接 Response.End。
  • Session 驗證核心邏輯封裝於公用 Include 檔,統一攔截。

3. Include 檔源碼洩露

  • 發布前徹底測試,移除測試備份檔。
  • .inc 改為 .asp、檔名亂碼化、目錄結構深層化。
  • IIS 設定對 .inc 映射 ASP 處理器,使其經解析後輸出而非原文下載。

4. 編輯器備份檔下載

  • 上傳前刪除 .bak、~ 等臨時檔。
  • FTP 客戶端設定過濾上傳副檔名。

5. 輸入驗證與 XSS 防範

  • 雙重驗證:客戶端 JS 攔截 + 伺服器端強制過濾。
  • 白名單機制:留言板僅允許字母數字,長度限制。
  • 危險字元轉義:<>"'&% 等轉為 HTML 實體。
  • 拒絕 eval()、script、iframe 等標籤存入資料庫。

6. Access 資料庫被直接下載

  • 檔名亂碼化 (如 d34ksfslf.mdb) + 多層目錄隱藏。
  • 使用 DSN-less 連線字串,不在代碼中硬編碼路徑。
  • 資料庫加密 + 設定開啟密碼 (工具→安全→加密/設定密碼)。

7. 遠程表單提交與 SQL 注入

  • 伺服器端驗證 HTTP_REFERER 包含本站域名。
  • 統一使用參數化查詢 (Command.Parameters) 徹底根治 SQL 注入。
  • 資料庫帳號最小權限,禁止 xp_cmdshell 等危險擴展。

8. ASP 木馬上傳防範

  • 白名單限制上傳副檔名:僅允許 gif,jpg,png,bmp,zip,rar。
  • 內容掃描:讀取檔案文本,檢測 WScript.Shell、Scripting.FileSystemObject、CreateObject、Execute、Eval 等危險關鍵字。
  • IIS 移除/重命名 Shell.Application、WScript.Shell 等 COM 元件 ProgID,徹底斷絕木馬執行環境。

檢查清單下載

建議將上述 8 項制成專案「安全驗收清單」,每次上線前逐項核對,納入程式碼審查流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved