標籤:安全 白帽子
第4章 跨網站請求偽造(CSRF)4.1 CSRF簡介
CSRF(Cross-site request forgery跨站請求偽造,也被稱為“one click attack”或者session riding,通常縮寫為CSRF或者XSRF,是一種對網站的惡意利用。
CSRF是一種依賴web瀏覽器的、被混淆過的代理人攻擊(deputy attack)。
4.2 CSRF進階
瀏覽器所持有的Cookie分為兩種:一種是“Sesion Cookie”,又稱“臨時Cookie”;另一種是“Third-party Cookie”,也稱為“本地cookie”。兩者的區別在於,Third-party Cookie是伺服器在Set-Cookie時指定Expire時間,只是到了Expire時間後Cookie才會失效,所以這種Cookie才會儲存在本地;Session Cookie則沒有指定Expire時間,所以關閉瀏覽器,Session Cookie就會失效。
在瀏覽網站的過程中,若是一個網站設定了Session Cookie,那麼在瀏覽器的進程的生命週期內,及時瀏覽器心開啟一個Tab頁面,SessionCookie也是有效,SessionCookie儲存在瀏覽器進程的記憶體空間中。
IE處於安全的考慮,預設禁止了瀏覽器在<img>,<iframe>,<scrtpt>,<link>等標籤中發送第三方Cookie。而Firefox中,預設策略是允許發送第三方Cookie的。
P3P
P3P是一種被稱為個人隱私安全平台項目(the Platform for Privacy Preferences)的標準,能夠保護線上隱私權,使Internet衝浪者可以選擇在瀏覽網頁時,是否被第三方收集並利用自己的個人資訊。如果一個網站不遵守P3P標準的話,那麼有關它的Cookies將被自動拒絕,並且P3P還能夠自動識破多種Cookies的嵌入方式。p3p是由全球資訊聯盟網所開發的。
隨著Internet的發展,電子商務發展勢頭也異常迅猛。這種新的貿易方式在帶給人們難以想象的便利前提下,也給人們帶來了以往現金交易模式下所沒有的麻煩——通過網路泄露個人隱私資料。(Platform for Privacy Preferences)正是一種可以提供這種個人隱私保護原則,並且正在被越來越多的技術人員接受的新技術。
Java實現:在Response的回應標頭中加入
response.setHeader("P3P","CP=/"CURaADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSPCOR/"");
請注意不要濫用該P3P屬性,以免帶來安全隱患。
CSRF攻擊成功的本質原因是重要操作的所有參數都是可以被攻擊者猜測到了。
4.3 CSRF的防禦4.3.1 驗證碼
驗證碼是認為對抗CSRF攻擊最簡潔而有效防禦方法。但是考慮到使用者的體驗效果,最好是在重要的操作再使用驗證碼。
CSRF攻擊多是通過構造URL進行攻擊的,所以可以在URL請求中加入一些隨機數或者混淆。
4.4 小結
本文出自 “夢朝思夕” 部落格,請務必保留此出處http://qiangmzsx.blog.51cto.com/2052549/1859548
《白帽子講WEB安全》學習筆記之第4章 跨網站請求偽造(CSRF)