Re: [閒聊] 2017.W09 - CSRF 的攻與受

看板NetSecurity (資安 資訊安全)作者 (lalala)時間7年前 (2017/02/28 17:30), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
這篇也有 SameSite cookie 的一些參考資料: https://scotthelme.co.uk/csrf-is-dead/ 雖然目前只有 Chrome 有 support.... http://caniuse.com/#search=SameSite 不過文章裡的裡面提到的不同 cookie type 的設計也不錯... 有關 CSRF 的說明也很簡明扼要。 ※ 引述《CMJ0121 (請多指教!!)》之銘言: : ## 內容 ## : CSRF (Cross-Site Request Forgery)[0],中文稱之為跨站請求偽造 : 是一種偽造使用者操作的攻擊手法 : 因為攻擊形式又被叫做 one-click attack [1] : 攻擊的方式 利用偽造使用者正常的請求 (HTTP Request) 而達到攻擊的目的 : 一般來說透過瀏覽器的請求 都用 HTTP[2] 的 GET、POST 等請求來完成 : 除了一些些特例之外 : 網站的設計者 對於某些敏感的操作 (e.g. 刪除、匯款) 都會驗證身份 : 這裡的驗證身份 在食物上都會用 session 來確認使用者是已經登入的帳號 : (題外話 有興趣的人記得要了解 Cookie 與 Session 的差別) : 因為 Browser 的特性 會將可以使用的 cookie 一併包含在 HTTP 請求當中 : 攻擊者就用這個特性來做到 one-click attack 的攻擊 : 可以參考此文章[3] 的情境 發現攻擊者可以利用以下方式來發送 CSRF: : 1. 一個圖文不符的假 Link (<a>、<img> 等) : 2. 你看不到的 iframe : 3. JavaScript 自動幫你 Submit 一個 POST 請求 : ## 防禦方式 ## : 一個好的網站設計者 會提供一個 CSRF Token 或者 state token : 來確定這次的 HTTP 請求真的是 user 當下 送出的 : Token 可以根據實作上的方式 分為綁定 session 或者是每次都不一樣 : 前者可以防禦 CSRF 的攻擊 而後者則可以防禦重放攻擊 (Reply Attack)[4] : 重放攻擊是重複執行上一次使用者合法的操作 : 像是 Alice 匯款給 Bob : Bob 就可以利用 Reply Attack 讓 Alice 一直匯 一直匯 一直匯... : 另一種則是 Chrome 最新提出來的 SameSite Cookie[5] : 也就是 Browser 只會在 Host 跟請求網站一致的時候 才會將 Cookie 包含在請求當中 : 透過這種方式 就可以完全避免掉 CSRF -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.96.40 ※ 文章網址: https://www.ptt.cc/bbs/NetSecurity/M.1488274250.A.0C6.html

03/01 16:39, , 1F
感謝大大補充 (感動QQ)
03/01 16:39, 1F
文章代碼(AID): #1OjKDA36 (NetSecurity)
討論串 (同標題文章)
文章代碼(AID): #1OjKDA36 (NetSecurity)