24. 如附圖所示,攻擊者可竄改查詢參數並存取所有帳號資訊, 關於此應用程式缺陷的敘述,下列何者錯誤?

(A) 此為結構化查詢語言注入(Structured Query Language Injection)
(B) 使用安全 API 來查詢以降低解譯器錯誤之風險
(C) 跳脫(Escape)系統保留字元避免查詢語法遭竄改
(D) 參數檢查機制必須實做於用戶端且使用黑名單過濾

答案:登入後查看
統計: A(218), B(160), C(189), D(784), E(0) #3173294

詳解 (共 1 筆)

#6024675

關於網站應用程式缺陷的敘述中,選項 (D)「參數檢查機制必須實做於用戶端且使用黑名單過濾」是錯誤的。實際上,依賴僅在客戶端進行輸入驗證和使用黑名單來過濾潛在的惡意輸入是不夠的,因為攻擊者可以繞過客戶端驗證,直接與伺服器進行交互。此外,使用黑名單過濾方法可能無法涵蓋所有的攻擊向量,因為攻擊者可以利用多種方法來構造攻擊,使之不被黑名單條目捕獲。

正確的做法包括在伺服器端進行輸入驗證,並優先考慮使用白名單過濾方法,確保只有預期內的、安全的輸入被接受處理。此外,使用參數化查詢(Parameterized Query)或預處理語句(Prepared Statement)是預防SQL注入攻擊的有效方法,因為它們可以確保用戶輸入被當作數據處理,而不是作為SQL指令的一部分來執行​​​​。

  • (A) 此為結構化查詢語言注入(SQL Injection):正確,SQL注入攻擊通過將惡意的SQL指令插入到應用程式的查詢中,從而執行未經授權的數據庫操作。
  • (B) 使用安全API來查詢以降低解譯器錯誤之風險:這是一種有效的防範措施,通過使用安全的API(如參數化查詢)來減少直接將用戶輸入拼接到SQL查詢中的風險。
  • (C) 跳脫(Escape)系統保留字元避免查詢語法遭竄改:這是預防SQL注入的一種方法,但不如參數化查詢有效,因為跳脫可能仍被繞過。

因此,選項 (D) 不僅描述錯誤,而且建議的做法(僅依賴客戶端驗證和黑名單過濾)並不是一種可靠的安全防禦措施。正确的做法應該包括在伺服器端進行嚴格的輸入驗證,並且儘可能使用白名單來確定哪些輸入是被允許的​​​​。

ㅤㅤ
12
0