民國112年 第3梯次 電腦軟體應用乙級 學科

第63題

下列何者為資料隱碼攻擊(SQL Injection)的防禦方法?

題目

下列何者為資料隱碼攻擊(SQL Injection)的防禦方法?

  1. (1) 不要在程式碼中標示註解
  2. (2) 對使用者隱藏資料庫管理系統回傳的錯誤訊息,以免攻擊者獲得有用資訊
  3. (3) 加強資料庫權限管理,不以系統管理員帳號連結資料庫
  4. (4) 對字串過濾並限制長度

官方答案

(2) 對使用者隱藏資料庫管理系統回傳的錯誤訊息,以免攻擊者獲得有用資訊、(3) 加強資料庫權限管理,不以系統管理員帳號連結資料庫、(4) 對字串過濾並限制長度

解析

SQL Injection 的根本防線是參數化查詢或預存程序,讓輸入值不被當成 SQL 指令;並搭配輸入白名單、字串過濾與長度限制。資料庫帳號應採最小權限,避免以系統管理員連線,以降低注入成功後的破壞。對使用者隱藏資料庫錯誤訊息,可避免攻擊者由錯誤內容推測資料表結構。第 1 項移除註解並非防禦,註解有無都不會阻止惡意字串被拼進查詢。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料