白帽子閱讀筆記——CSRF

跨站請求僞造:誘使用戶點擊僞造頁面,竊取用戶cookie,實施攻擊等

 

瀏覽器所持有的cookie有兩種,一種是session cookie 也叫臨時cookie,一種是Third-party Cookie,本地Cookie

Third-party Cookie是服務器在Set-cookie時指定了Expire時間,只有到Expire時間後Cookie纔會生效

session cookie是沒有指定expire時間,當瀏覽器關閉時,該cookie就失效

 

在瀏覽網站過程中,若一個網站設置了一個session cookie,那麼在瀏覽器進程的生命週期內,即使瀏覽器打開了新的Tab頁,Session Cookie也是有效的。Session Cookie 保存在瀏覽器進程的內存空間,Third-party Cookie保存在本地

若瀏覽器從一個域的頁面中,加載另一個域的資源,由於安全,某些瀏覽器會阻止Third-party Cookie發送

 

P3P Header The Platform for Privacy Preferences

若網站返回給瀏覽器的HTTP頭包含P3P頭,在某種程度上說,將允許瀏覽器發送第三方cookie;

在網站中,主要用於類似廣告等需要跨域訪問的頁面,因此cookie是以域和path爲單位的,這不符合”最小權限原則“

若測試CDRF時發現<frame>等標籤可以在IE中發送Cookie,又找不到其他原因很可能是P3P作怪

 

CSRF的防禦

1.驗證碼:最簡潔有效 只能作爲輔助手段

2.Referer Check:

用於檢查請求是否來自合法的”源“ (即從什麼頁面跳轉過來的)但是服務器並不是什麼時候都能取到referer,由於隱私,限制了發送,再者,瀏覽器從HTTPS跳轉到HTTP時,也不會發送;

3.使用Token:Ant CSRF Token

 

CSRF能被攻擊的本質原因:所有參數都是可以被攻擊者猜測到

一個解決方案·:把參數加鹽加密,或者使用一些隨機數,即”不可預測原則“

但是上述方案不友好,給數據分析工作帶來困擾,某些URL無法被收藏

出現了token,token的值是隨機的,可以放在session Cookie中;使用時,可以允許在一個用戶有效生命週期內,在Token消耗掉錢都是用用一個Token,若用戶提交了表單,則生成一個新的Token,若用戶生成了多個相同頁面,可以考慮生成多個token;使用時,應該儘量把Token放在表單中,敏感操作有GET改爲POST,以form表單形式提交;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章