16. 某網站存在跨站請求偽造( Cross Site Request Forgery,CSRF)漏洞,攻擊者可能會利用該漏洞發起攻擊。下列何種方法最常用來防止 CSRF 攻擊?
(A) 在 URL 中加入 Session ID
(B) 將所有表單設為唯讀權限(Read only)
(C) 在使用者的請求中加入 Token
(D) 將所有網頁設置為不可被搜索引擎索引
答案:登入後查看
統計: A(112), B(84), C(668), D(48), E(0) #3351118
統計: A(112), B(84), C(668), D(48), E(0) #3351118
詳解 (共 2 筆)
#7376122
什麼是 CSRF(跨站請求偽造)?
CSRF 攻擊的核心在於「利用使用者的瀏覽器信任狀態(如 Cookie)」。當使用者已經登入 A 網站,且瀏覽器中存有 A 網站的識別資訊(Session Cookie)時,若使用者不小心點擊了惡意 B 網站的連結,B 網站就可以在使用者不知情的情況下,冒用使用者的身分向 A 網站發送請求(例如:轉帳、修改密碼、發文)。
因為瀏覽器會自動在請求中帶上 A 網站的 Cookie,A 網站的伺服器會誤以為這真的是使用者本人操作的合法請求。
因為瀏覽器會自動在請求中帶上 A 網站的 Cookie,A 網站的伺服器會誤以為這真的是使用者本人操作的合法請求。
為什麼選 (C)?
• 防禦原理: 為了阻斷這種冒用身分的自動請求,最有效且最常用的方法就是 CSRF Token(同步權限標記机制)。
• 運作方式: 當使用者瀏覽網頁時,伺服器會隨機產生一個隨機、獨一無二且無法被預測的 Token 給前端。當使用者提交表單或發送重要請求時,必須在請求內容(通常是隱藏欄位或 HTTP Header)中帶上這個 Token。
• 關鍵防禦點: 由於惡意 B 網站只能利用瀏覽器自動帶上 Cookie,但無法得知或讀取 A 網站頁面中生成的隨機 Token,因此當惡意網站發送沒有正確 Token 的請求時,伺服器就會拒絕執行,從而成功防禦 CSRF 攻擊。
其它選項為何錯誤?
• (A) 在 URL 中加入 Session ID
• 錯誤原因: 將 Session ID 直接暴露在 URL 中(稱為 URL Rewriting)是非常危險的資安做法,容易導致 Session ID 透過瀏覽器歷史紀錄、伺服器 Log 或 Referer 欄位外洩。這不僅無法防禦 CSRF,反而會增加「會話劫持(Session Hijacking)」的風險。
• 錯誤原因: 將 Session ID 直接暴露在 URL 中(稱為 URL Rewriting)是非常危險的資安做法,容易導致 Session ID 透過瀏覽器歷史紀錄、伺服器 Log 或 Referer 欄位外洩。這不僅無法防禦 CSRF,反而會增加「會話劫持(Session Hijacking)」的風險。
• (B) 將所有表單設為唯讀權限 (Read only)
• 錯誤原因: 如果把所有表單都設為唯讀,使用者將無法輸入任何資料、無法登入也無法修改資料,網站將失去基本的功能性,這是不切實際的做法。
• (D) 將所有網頁設置為不可被搜尋引擎索引
• 錯誤原因: 透過 robots.txt 或 Meta 標籤阻止搜尋引擎爬蟲索引,只能讓網頁不出現在 Google 等搜尋結果中,完全無法阻止駭客直接輸入 URL、利用惡意連結或透過社交工程來發動 CSRF 攻擊。
0
0