35. 【題組 4】情境如附圖所示。在檢測後發現命令注入弱點 (Command Injection),請問應採用下列何項進行修復?
(A) 過濾特殊字元及允許命令之白名單
(B) 不允許大寫字元
(C) 過濾 Unicode 字元
(D) 使用防毒軟體

答案:登入後查看
統計: A(468), B(1), C(22), D(2), E(0) #3142755

詳解 (共 1 筆)

#6312307

以下針對各選項進行解釋與分析:

(A)「過濾特殊字元及允許命令之白名單」

  • 說明:針對命令注入(Command Injection)漏洞,最核心的防禦措施是避免將使用者輸入直接拼接進系統命令,並進行輸入驗證(Input Validation)。常見做法包含:
    • 11 過濾/移除可能造成 Shell 解譯或執行的特殊字元(如 ;, |, &&, ||, $(), `, 等)。
    • 22 採用**白名單(Whitelist)**機制,僅允許已明確認可之參數或命令,嚴格限制可被執行的命令範圍。
  • 這些方式能大幅降低透過字串拼接而產生的命令執行風險。
  • 評價:此選項是修補命令注入漏洞的正確作法。

(B)「不允許大寫字元」

  • 說明:僅僅限制大寫字元並不能有效防止命令注入,因為攻擊者可以改用小寫字元或其他繞過手段(特殊符號、Unicode 編碼方式等)。
  • 評價:這完全無法解決命令注入的本質問題,並非正確作法。

(C)「過濾 Unicode 字元」

  • 說明:將所有 Unicode 字元過濾或阻擋,並不能避免大部分與命令注入相關的問題,因為常見的命令注入字元(如 ;、&、| 等)都不必然需要依賴特殊 Unicode 編碼,也可以使用 ASCII 字元。
  • 即使部分攻擊者會利用特殊編碼變形,但核心還是要管控「哪些字元能進入命令」、「是否做白名單限制」。
  • 評價:此措施頂多是「部分輔助」,但不是解決命令注入的關鍵手段,也不足以稱為修補方法。

(D)「使用防毒軟體」

  • 說明:防毒軟體(AntiVirus)主要針對已知惡意程式的檔案偵測或行為偵測,無法直接防禦或修補應用程式層面的命令注入漏洞。
  • 命令注入是一種 Web/應用程式安全議題,需要在程式設計或系統呼叫層進行修復與防護。
  • 評價:此作法與「命令注入漏洞」的修補方向並無直接關連,也非根本解決方案。

總結

  • (A)「過濾特殊字元及允許命令之白名單」為修補 命令注入 漏洞的核心防禦方式。
  • 其他選項 (B)、(C)、(D) 均無法有效解決命令注入問題。

正確答案: (A)

0
0