26. 下列何項措施最能有效防禦跨站請求偽造(Cross-Site Request Forgery, CSRF)攻擊?
(A) 在表單中加入隱藏的隨機令牌(Token)
(B) 對使用者輸入的資料進行編碼
(C) 使用 HTTPS 協定傳輸資料
(D) 設置強密碼策略

答案:登入後查看
統計: A(33), B(5), C(12), D(2), E(0) #3671662

詳解 (共 1 筆)

#7255942

這題的正確答案是:

(A) 在表單中加入隱藏的隨機令牌(Token)

解析

CSRF (Cross-Site Request Forgery,跨站請求偽造) 的攻擊原理是利用使用者「已登入」的身分(瀏覽器的 Cookie),在使用者不知情的情況下,由惡意網站發送請求給目標網站。

為什麼 (A) 是最有效的防禦措施?

  • 機制: 這種技術通常稱為 Anti-CSRF TokenSynchronizer Token Pattern。伺服器在生成表單時,會產生一個隨機、不可預測的 Token(令牌),並將其放入表單的隱藏欄位中。

  • 驗證: 當使用者送出表單時,伺服器會檢查這個 Token 是否與伺服器端紀錄的一致。

  • 防禦點: 駭客雖然可以偽造請求的 URL 或參數,但因為駭客的網站無法讀取使用者在目標網站當前頁面的內容(受到「同源政策 Same-Origin Policy」限制),所以駭客無法取得這個隨機的 Token。沒有正確的 Token,偽造的請求就會被伺服器拒絕。

其他選項為什麼不是最佳答案?

  • (B) 對使用者輸入的資料進行編碼 (Input Encoding):

    • 這是防禦 XSS (Cross-Site Scripting,跨站腳本攻擊) 的主要手段。雖然 XSS 攻擊可以用來竊取 Token 進而發動 CSRF,但單純的編碼無法防禦標準的 CSRF 攻擊。

  • (C) 使用 HTTPS 協定傳輸資料:

    • HTTPS 負責的是資料傳輸過程中的加密身分驗證,防止中間人攻擊 (MitM) 或竊聽。但 CSRF 攻擊是利用合法的 Cookie 發送請求,這對 HTTPS 來說是一個加密過的「合法請求」,因此 HTTPS 無法分辨該請求是否為使用者的本意。

  • (D) 設置強密碼策略:

    • 這是用來防止暴力破解 (Brute Force)撞庫攻擊 (Credential Stuffing) 的措施。CSRF 攻擊發生的前提通常是使用者「已經成功登入且 Session 有效」,因此與密碼強弱無關。

補充:現代防禦趨勢

除了 Token 之外,現代瀏覽器與開發框架也常使用 SameSite Cookie 屬性(設定為 Strict 或 Lax)來作為防禦 CSRF 的輔助或替代方案,限制 Cookie 在跨站請求時不被傳送。

 

0
0