摘要:參考深入解析跨站請求偽造漏洞攻擊的應對之道相關安全,是一個很重要的技能,也是一個領域的知識。我把這個領域的東西寫成了一個系列,以后還會繼續完善下去安全一同源策略與跨域安全二攻擊安全三攻擊
什么是CSRF
全稱是(Cross Site Request Forgery)跨站請求偽造。也就是惡意網站偽裝成用戶向目標網站服務器發送請求,騙取服務器執行請求中的命令,直接在服務器改變數據值的一種攻擊手段。
CSRF是怎么產生的用戶需要獲取操作的權限,目標網站服務器會要求一次驗證,通常都是一次賬號密碼登錄。服務器驗證通過之后,會在瀏覽器寫一個會話ID,來標識用戶的身份。這是一種隱式驗證的方法,用戶只要驗證一次獲取到會話ID之后,在會話ID未過期的一段時間內的請求操作是不需要再次驗證的。但服務器只能判斷請求是來源于這個授權過的瀏覽器,而不能判斷請求是否是用戶發起或者是用戶授權的。所以當用戶瀏覽了惡意網站之后,惡意網站就可以給服務器發起帶有命令的請求,嘗試改變服務器中的數據值。
CSRF的攻擊對象CSRF的攻擊對象也就是我們要保護的對象。CSRF利用的是授權瀏覽器向目標網站服務器發送任何請求時,都會自動帶上會話ID或者cookie進行身份驗證。但是由于瀏覽器同源策略的限制,惡意網站無法看到目標網站的cookie或者回話ID,也沒有辦法解析返回的內容,所以惡意所能做的就是給服務器發送請求,以執行請求中所描述的命令,在服務器端直接改變數據的值,而非竊取服務器中的數據
CSRF的攻擊手段利用iframe和javascipt發起post請求
window.onload=function(){ function steal() { var iframe = window.frames["steal"].document; var form = document.getElementsByTagName("form")[0]; form.submit(); } steal(); } CSRF的防御措施
1. 涉及到數據更改的操作服務器嚴格使用post請求而不是get請求
2. 驗證HTTP Referer 字段
根據 HTTP 協議,在 HTTP 頭中有一個字段叫 Referer,它記錄了該 HTTP 請求的來源地址。惡意網站只能在他自己的網站偽造請求,所以驗證referer應該是可以過濾掉一部分CSRF攻擊的。但是使用Rerferer值,就相當于把安全性交給了第三方,瀏覽器實現referer的方式不能保證沒有漏洞。據說IE6是可以修改referer的值的。另外referer會記錄下用戶的訪問來源,有些用戶會覺得是侵犯了其隱私,而且用戶是可以設置使用瀏覽器時不再提供referer的。(所以說這種方法雖然簡單但是不可靠)
3. 在請求地址中添加token
CSRF 攻擊之所以能夠成功,是因為黑客可以完全偽造用戶的請求。服務器驗證地址中加密的token,可以比較有效地避免攻擊
4. HTTP頭自定義屬性驗證
這個是token驗證的變種,可以利用 XMLHttpRequest 這個類,一次性給ajax請求加上 特定的 HTTP 頭屬性,并把 token 值放入其中。
5 顯式驗證,添加驗證碼驗證,密碼驗證等。
CSRF 攻擊之所以能夠成功,也是由于隱式驗證,服務器無法判斷請求真實地由用戶發起和用戶授權的。
總的來說,CSRF防御沒有十全十美的方法,只有適合的方法。
參考
深入解析跨站請求偽造漏洞
CSRF 攻擊的應對之道
【相關】
web安全,是一個很重要的技能,也是一個領域的知識。我把這個領域的東西寫成了一個系列,以后還會繼續完善下去:
web安全一:同源策略與跨域
web安全二:CSRF 攻擊
web安全三:XSS 攻擊
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93004.html
摘要:參考深入解析跨站請求偽造漏洞攻擊的應對之道相關安全,是一個很重要的技能,也是一個領域的知識。我把這個領域的東西寫成了一個系列,以后還會繼續完善下去安全一同源策略與跨域安全二攻擊安全三攻擊 什么是CSRF 全稱是(Cross Site Request Forgery)跨站請求偽造。也就是惡意網站偽裝成用戶向目標網站服務器發送請求,騙取服務器執行請求中的命令,直接在服務器改變數據值的一種攻...
摘要:最近在學習安全相關的一些知識,目前對安全也只有了一些淺顯的理解,下面記錄我的一些理解。防御攻擊的方法主要是修改數據的接口,盡量使用請求使用同源策略推薦的文章安全之攻擊其實還講了其他的幾種方法,但是都沒接觸過,不太理解,所以沒有寫下來。 最近在學習web安全相關的一些知識,目前對web安全也只有了一些淺顯的理解,下面記錄我的一些理解。因為對這一塊懂的東西不是很多,有些地方可能寫的不對或者...
摘要:前言一直以來自己對安全方面的知識了解的比較少,最近有點閑工夫了解了一下。攻擊的一般是由服務端解決。攻擊條件登錄受信任網站,并在本地生成。驗證對所有引用對象的授權。 前言 一直以來自己對WEB安全方面的知識了解的比較少,最近有點閑工夫了解了一下。也是為了以后面試吧,之前就遇到過問WEB安全方面的問題,答的不是很理想,所以整理了一下! 一、XSS攻擊 跨站腳本攻擊(Cross Site ...
閱讀 1829·2021-09-14 18:03
閱讀 2267·2019-08-30 15:48
閱讀 1121·2019-08-30 14:09
閱讀 507·2019-08-30 12:55
閱讀 2724·2019-08-29 11:29
閱讀 1483·2019-08-26 13:43
閱讀 2311·2019-08-26 13:30
閱讀 2369·2019-08-26 12:17