Q86.
下列何者不是資料隱碼攻擊(SQL Injection)的防禦方法?
電腦軟體應用 · 丙級 · 資訊安全 · Q86
難易度分析
2 / 5
本題考查資安防禦基礎概念,需區分實際的安全加固措施與一般的程式開發習慣。由於選項中包含多項標準的安全實務,僅需排除與安全性無關的選項即可得出答案,因此難度較低。
正確答案:④在程式碼中標示註解
④ 在程式碼中標示註解:程式碼註解僅用於提升程式可讀性與維護性,與 SQL Injection 防禦完全無關,無法對惡意輸入進行任何防護。
錯誤選項解析
- ① 對字串過濾並限制長度:輸入驗證與過濾是防禦 SQL Injection 的基本手段,透過過濾特殊字元(如單引號、分號)並限制輸入長度,可有效阻斷惡意 SQL 語法注入。
- ② 加強資料庫權限管理,不以系統管理員帳號連結資料庫:最小權限原則是資訊安全核心概念,避免使用 系統管理員帳號(如 sa、root) 連接資料庫,可限制攻擊者即使成功注入也無法執行高權限操作。
- ③ 對使用者隱藏資料庫管理系統回傳的錯誤訊息,以免攻擊者獲得有用資訊:錯誤訊息隱藏屬於防禦性編程實踐,避免 SQL 錯誤訊息洩露資料庫結構、表名或欄位資訊,防止攻擊者利用這些資訊進行 Blind SQL Injection 或進階攻擊。
Learning Tip
"SQL Injection 防禦的核心在於「輸入驗證」、「參數化查詢(Prepared Statement)」與「最小權限原則」。常考陷阱是將與程式碼品質相關的做法(如註解、排版)混淆為安全防護手段。實務上最推薦使用 參數化查詢 或 預存程序 來徹底阻斷 SQL 注入風險。"
學員答題分佈
①對字串過濾並限制長度0%
②加強資料庫權限管理,不以系統管理員帳號連結資料庫0%
③對使用者隱藏資料庫管理系統回傳的錯誤訊息,以免攻擊者獲得有用資訊0%
④在程式碼中標示註解0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!