SQL 注入仍是 Web 應用頭號威脅。本文提出三層防禦體系:通用防注入模組 擋手動測試 → 欺騙自動化掃描器 以高權限誘餌帳號拖垮分析器 → 登入頁面長度限制 封殺誘餌帳號實際登入。配合資料表結構調整,零成本大幅提升安全性。
駭客在輸入欄位 (URL、表單) 置入惡意 SQL 片段,利用程式未驗證輸入,竄改查詢邏輯,繞過驗證、竊取資料、植入木馬、提權至系統管理員。
SqlInjectionFilter、PHP mysql_real_escape_string 封裝)。', --, ;, UNION, SELECT 等特徵的請求。洞察:掃描器鎖定「高權限旗標」(如 flag=1, is_admin=1) 而非特定帳號名。
VARCHAR(255) 或 TEXT。ID=1 放入 admin / 超過 1000 字中文長字串 (真實高權限帳號)。ID=549 放入真正管理員 real_admin / 強密碼。效果:掃描器優先嘗試 ID=1,龐大字串導致字典窮舉、暴力破解資源耗盡、甚至掃描器崩潰。
maxlength + 後端 IF LEN(@user)>20 RETURN 雙重驗證。EXEC 特定 SP 權限,無 SELECT/INSERT/UPDATE/DELETE 直接表權限。三步驟 (通用模組 + 誘餌帳號 + 長度限制) 針對「手動測試、自動掃描、誘餌被盜用」三個攻擊面,成本極低、即時生效。但參數化查詢才是根本解法,請優先重構代碼。