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

SQL Server 注入防禦三步走:誘餌帳號 + 字元長度陷阱 + 登入頁限制

     編輯:PHP 相關知識

SQL 注入本質

應用未驗證用戶輸入,攻擊者透過正常 Web 埠注入 SQL 片段,竊取/篡改資料、提權掛馬。

三步防禦策略

第一步:通用防注入腳本(僅擋手工測試)

頁面頭部引入過濾腳本,可阻擋手工注入,但自動化分析工具(如 SQL 注入分析器)可繞過並自動探測注入點,幾分鐘內破解管理員帳密。

第二步:理解分析器攻擊邏輯

實測發現:分析器鎖定的是權限標識欄位(如 flag=1),而非特定帳號名。無論管理員帳號如何變換,只要權限欄位可被識別即會被鎖定。

第三步:誘餌帳號 + 字元長度陷阱 + 登入頁長度限制

  1. 修改表結構:帳號/密碼欄位改為 VARCHAR(255) 或 TEXT。
  2. 植入誘餌帳號(ID=1):權限最高,帳號密碼填入 超過 1000 個中文字元。分析器嘗試暴力破解時會進入全負荷甚至資源耗盡死機。
  3. 真實管理員帳號隱藏於高 ID(如 ID=549)。
  4. 登入頁面強制長度驗證:限制輸入長度(如 20 字元),誘餌帳號因超長被攔截,真實帳號正常通行。

安全性評估

  • 增加攻擊成本:分析器需處理超長字串,極大降低破解效率
  • 非絕對防禦:若攻擊者針對性繞過長度檢查,仍需結合參數化查詢、WAF、最小權限原則等纵深防禦
  • 核心修正:根治 SQL 注入必須使用參數化查詢/預編譯語句,本文方案屬緩解措施
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved