資訊安全基礎
網頁應用程式若在登入前後持續使用相同的工作階段ID,攻擊者可能讓使用者使用攻擊者事先準備的工作階段ID,並在使用者登入後以該ID冒充使用者。對這種攻擊最適當的對策是哪一項?
- A把工作階段ID設為每位使用者的流水號,方便管理
- B登入成功時重新核發新的工作階段ID,並使先前的ID失效
- C把工作階段ID放在URL中傳遞
查看答案與解析
正確答案:B. 登入成功時重新核發新的工作階段ID,並使先前的ID失效
這種攻擊稱為工作階段固定攻擊。網頁應用程式以透過Cookie等傳遞的工作階段ID來辨識已登入的使用者。若攻擊者能在登入前讓使用者使用攻擊者知道的工作階段ID,而該ID在登入後仍繼續使用,攻擊者就能以同一個ID冒充使用者存取。對策是在登入成功時重新核發無法預測的新工作階段ID,並使舊的ID失效。如此,攻擊者在登入前得知的ID就派不上用場。以竊取或猜測工作階段ID來冒充使用者的攻擊統稱為工作階段劫持,要搭配以下對策:把ID設為足夠長的隨機值、只透過HTTPS傳送(Cookie的Secure屬性)、不放在URL中(容易從Referer標頭或瀏覽紀錄外洩)等。流水號的ID容易被猜到,相當危險。
- A. 流水號的ID容易被猜到,會提高冒充其他使用者的風險。
- B. 正確。在登入時換發新的ID,攻擊者事先得知的ID就無法使用。
- C. 放在URL中的工作階段ID,容易從Referer標頭、瀏覽紀錄或分享的連結外洩。