摘要:參考深入解析跨站請(qǐng)求偽造漏洞攻擊的應(yīng)對(duì)之道相關(guān)安全,是一個(gè)很重要的技能,也是一個(gè)領(lǐng)域的知識(shí)。我把這個(gè)領(lǐng)域的東西寫成了一個(gè)系列,以后還會(huì)繼續(xù)完善下去安全一同源策略與跨域安全二攻擊安全三攻擊
什么是CSRF
全稱是(Cross Site Request Forgery)跨站請(qǐng)求偽造。也就是惡意網(wǎng)站偽裝成用戶向目標(biāo)網(wǎng)站服務(wù)器發(fā)送請(qǐng)求,騙取服務(wù)器執(zhí)行請(qǐng)求中的命令,直接在服務(wù)器改變數(shù)據(jù)值的一種攻擊手段。
CSRF是怎么產(chǎn)生的用戶需要獲取操作的權(quán)限,目標(biāo)網(wǎng)站服務(wù)器會(huì)要求一次驗(yàn)證,通常都是一次賬號(hào)密碼登錄。服務(wù)器驗(yàn)證通過之后,會(huì)在瀏覽器寫一個(gè)會(huì)話ID,來標(biāo)識(shí)用戶的身份。這是一種隱式驗(yàn)證的方法,用戶只要驗(yàn)證一次獲取到會(huì)話ID之后,在會(huì)話ID未過期的一段時(shí)間內(nèi)的請(qǐng)求操作是不需要再次驗(yàn)證的。但服務(wù)器只能判斷請(qǐng)求是來源于這個(gè)授權(quán)過的瀏覽器,而不能判斷請(qǐng)求是否是用戶發(fā)起或者是用戶授權(quán)的。所以當(dāng)用戶瀏覽了惡意網(wǎng)站之后,惡意網(wǎng)站就可以給服務(wù)器發(fā)起帶有命令的請(qǐng)求,嘗試改變服務(wù)器中的數(shù)據(jù)值。
CSRF的攻擊對(duì)象CSRF的攻擊對(duì)象也就是我們要保護(hù)的對(duì)象。CSRF利用的是授權(quán)瀏覽器向目標(biāo)網(wǎng)站服務(wù)器發(fā)送任何請(qǐng)求時(shí),都會(huì)自動(dòng)帶上會(huì)話ID或者cookie進(jìn)行身份驗(yàn)證。但是由于瀏覽器同源策略的限制,惡意網(wǎng)站無法看到目標(biāo)網(wǎng)站的cookie或者回話ID,也沒有辦法解析返回的內(nèi)容,所以惡意所能做的就是給服務(wù)器發(fā)送請(qǐng)求,以執(zhí)行請(qǐng)求中所描述的命令,在服務(wù)器端直接改變數(shù)據(jù)的值,而非竊取服務(wù)器中的數(shù)據(jù)
CSRF的攻擊手段利用天生具有跨域能力的標(biāo)簽-- ,,等,發(fā)起get請(qǐng)求
利用iframe和javascipt發(fā)起post請(qǐng)求
window.onload=function(){ function steal() { var iframe = window.frames["steal"].document; var form = document.getElementsByTagName("form")[0]; form.submit(); } steal(); } CSRF的防御措施
1. 涉及到數(shù)據(jù)更改的操作服務(wù)器嚴(yán)格使用post請(qǐng)求而不是get請(qǐng)求
2. 驗(yàn)證HTTP Referer 字段
根據(jù) HTTP 協(xié)議,在 HTTP 頭中有一個(gè)字段叫 Referer,它記錄了該 HTTP 請(qǐng)求的來源地址。惡意網(wǎng)站只能在他自己的網(wǎng)站偽造請(qǐng)求,所以驗(yàn)證referer應(yīng)該是可以過濾掉一部分CSRF攻擊的。但是使用Rerferer值,就相當(dāng)于把安全性交給了第三方,瀏覽器實(shí)現(xiàn)referer的方式不能保證沒有漏洞。據(jù)說IE6是可以修改referer的值的。另外referer會(huì)記錄下用戶的訪問來源,有些用戶會(huì)覺得是侵犯了其隱私,而且用戶是可以設(shè)置使用瀏覽器時(shí)不再提供referer的。(所以說這種方法雖然簡(jiǎn)單但是不可靠)
3. 在請(qǐng)求地址中添加token
CSRF 攻擊之所以能夠成功,是因?yàn)楹诳涂梢酝耆珎卧煊脩舻恼?qǐng)求。服務(wù)器驗(yàn)證地址中加密的token,可以比較有效地避免攻擊
4. HTTP頭自定義屬性驗(yàn)證
這個(gè)是token驗(yàn)證的變種,可以利用 XMLHttpRequest 這個(gè)類,一次性給ajax請(qǐng)求加上 特定的 HTTP 頭屬性,并把 token 值放入其中。
5 顯式驗(yàn)證,添加驗(yàn)證碼驗(yàn)證,密碼驗(yàn)證等。
CSRF 攻擊之所以能夠成功,也是由于隱式驗(yàn)證,服務(wù)器無法判斷請(qǐng)求真實(shí)地由用戶發(fā)起和用戶授權(quán)的。
總的來說,CSRF防御沒有十全十美的方法,只有適合的方法。
參考
深入解析跨站請(qǐng)求偽造漏洞
CSRF 攻擊的應(yīng)對(duì)之道
【相關(guān)】
web安全,是一個(gè)很重要的技能,也是一個(gè)領(lǐng)域的知識(shí)。我把這個(gè)領(lǐng)域的東西寫成了一個(gè)系列,以后還會(huì)繼續(xù)完善下去:
web安全一:同源策略與跨域
web安全二:CSRF 攻擊
web安全三:XSS 攻擊
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/11348.html
摘要:參考深入解析跨站請(qǐng)求偽造漏洞攻擊的應(yīng)對(duì)之道相關(guān)安全,是一個(gè)很重要的技能,也是一個(gè)領(lǐng)域的知識(shí)。我把這個(gè)領(lǐng)域的東西寫成了一個(gè)系列,以后還會(huì)繼續(xù)完善下去安全一同源策略與跨域安全二攻擊安全三攻擊 什么是CSRF 全稱是(Cross Site Request Forgery)跨站請(qǐng)求偽造。也就是惡意網(wǎng)站偽裝成用戶向目標(biāo)網(wǎng)站服務(wù)器發(fā)送請(qǐng)求,騙取服務(wù)器執(zhí)行請(qǐng)求中的命令,直接在服務(wù)器改變數(shù)據(jù)值的一種攻...
摘要:最近在學(xué)習(xí)安全相關(guān)的一些知識(shí),目前對(duì)安全也只有了一些淺顯的理解,下面記錄我的一些理解。防御攻擊的方法主要是修改數(shù)據(jù)的接口,盡量使用請(qǐng)求使用同源策略推薦的文章安全之攻擊其實(shí)還講了其他的幾種方法,但是都沒接觸過,不太理解,所以沒有寫下來。 最近在學(xué)習(xí)web安全相關(guān)的一些知識(shí),目前對(duì)web安全也只有了一些淺顯的理解,下面記錄我的一些理解。因?yàn)閷?duì)這一塊懂的東西不是很多,有些地方可能寫的不對(duì)或者...
摘要:面試網(wǎng)絡(luò)了解及網(wǎng)絡(luò)基礎(chǔ)對(duì)端傳輸詳解與攻防實(shí)戰(zhàn)本文從屬于筆者的信息安全實(shí)戰(zhàn)中滲透測(cè)試實(shí)戰(zhàn)系列文章。建議先閱讀下的網(wǎng)絡(luò)安全基礎(chǔ)。然而,該攻擊方式并不為大家所熟知,很多網(wǎng)站都有的安全漏洞。 面試 -- 網(wǎng)絡(luò) HTTP 現(xiàn)在面試門檻越來越高,很多開發(fā)者對(duì)于網(wǎng)絡(luò)知識(shí)這塊了解的不是很多,遇到這些面試題會(huì)手足無措。本篇文章知識(shí)主要集中在 HTTP 這塊。文中知識(shí)來自 《圖解 HTTP》與維基百科,若...
摘要:前言一直以來自己對(duì)安全方面的知識(shí)了解的比較少,最近有點(diǎn)閑工夫了解了一下。攻擊的一般是由服務(wù)端解決。攻擊條件登錄受信任網(wǎng)站,并在本地生成。驗(yàn)證對(duì)所有引用對(duì)象的授權(quán)。 前言 一直以來自己對(duì)WEB安全方面的知識(shí)了解的比較少,最近有點(diǎn)閑工夫了解了一下。也是為了以后面試吧,之前就遇到過問WEB安全方面的問題,答的不是很理想,所以整理了一下! 一、XSS攻擊 跨站腳本攻擊(Cross Site ...
閱讀 843·2021-11-18 10:07
閱讀 2356·2021-10-14 09:42
閱讀 5342·2021-09-22 15:45
閱讀 589·2021-09-03 10:29
閱讀 3468·2021-08-31 14:28
閱讀 1877·2019-08-30 15:56
閱讀 3043·2019-08-30 15:54
閱讀 999·2019-08-29 11:32