今天下午上了一堂前端安全的課,挺有意思,記錄下來(lái)。在上課之前,我對(duì)安全的概念是:
用戶輸入是不可信的,所有用戶的輸入都必須轉(zhuǎn)義之后才入庫(kù)。
然后,上面這個(gè)這種方式,僅僅是防止SQL注入攻擊,避免業(yè)務(wù)數(shù)據(jù)庫(kù)被滲入。
在數(shù)據(jù)庫(kù)有了一層安全保護(hù)之后,攻擊者們的目標(biāo),從服務(wù)器轉(zhuǎn)移到了用戶身上。由此,出現(xiàn)了CSRF攻擊和XSS攻擊。
CSRF
CSRF (Cross-Site-Request-Forgery) 全稱是跨站請(qǐng)求偽造。是攻擊者偽造用戶身份,向服務(wù)器發(fā)起請(qǐng)求已達(dá)到某種目的的攻擊。
GET類型的CSRF
假如有一個(gè)業(yè)務(wù)系統(tǒng)API,其有一個(gè)點(diǎn)贊的api是http://domain.com/api/like?pid=111 ,如果想要刷pid為111的點(diǎn)贊,只需要構(gòu)建一個(gè)簡(jiǎn)單的HTTP請(qǐng)求即可。
<img src='http://domain.com/api/like?pid=111'>
因?yàn)镮mg標(biāo)簽會(huì)自動(dòng)請(qǐng)求src的網(wǎng)絡(luò),估當(dāng)用戶瀏覽一個(gè)含有上述img標(biāo)簽的網(wǎng)址的時(shí)候,不經(jīng)意間已經(jīng)發(fā)出一個(gè)為pid=111內(nèi)容進(jìn)行點(diǎn)贊的操作。
其實(shí)這種寫操作,最好改成POST的形式,起碼增加了攻擊者的門檻。
POST類型的CSRF
此類型的特點(diǎn)是,業(yè)務(wù)系統(tǒng)的api,對(duì)于寫操作,是用POST的方式,而不是GET的方式。
和GET對(duì)比起來(lái),攻擊門檻高了一些,不能僅僅依靠img標(biāo)簽來(lái)構(gòu)造HTTP請(qǐng)求,得靠表單來(lái)實(shí)現(xiàn)HTTP POST了。
<form action="http://domain.com/api/like">
<input type="text" name="xxx" value="1">
</form>
<script>
document.forms[0].submit();
</script>
先準(zhǔn)備一個(gè)攻擊頁(yè)面,如上面的代碼,然后將URL隱藏在預(yù)先準(zhǔn)備的內(nèi)容中,分發(fā)出去,誘使用戶點(diǎn)擊攻擊頁(yè)面。
CSRF防御方式
GET類型的CSRF,就應(yīng)該從代碼層面規(guī)避,讓寫操作必須走HTTP POST的方式,這樣也更符合HTTP Method的語(yǔ)義。
POST類型的CSRF,由于是跨站攻擊,一個(gè)簡(jiǎn)單的防御方式是對(duì)HTTP Refer進(jìn)行判斷,如果是非業(yè)務(wù)[域名發(fā)起的HTTP請(qǐng)求,則直接過(guò)濾處理。
但HTTP Refer并不是百分百可靠,在某些時(shí)候,服務(wù)器是收不到HTTP Refer值的(例如某些代理環(huán)境,例如低版本瀏覽器)。
所以,HTTP Refer可以用來(lái)做CSRF攻擊的檢測(cè),但防御還需要另外真正的宙斯盾。
根據(jù)上面可以知道,所有CSRF攻擊,最重要的是偽造攻擊URL,如果我們的API,帶有一個(gè)隨機(jī)參數(shù),讓攻擊者沒(méi)法固定偽造,則可以完美防御CSRF攻擊。
防御CSRF,可以在我們請(qǐng)求的參數(shù)里面,攜帶一次性隨機(jī)Token信息即可。
如果你對(duì)網(wǎng)絡(luò)安全入門感興趣,那么你點(diǎn)擊這里??CSDN大禮包:《黑客&網(wǎng)絡(luò)安全入門&進(jìn)階學(xué)習(xí)資源包》免費(fèi)分享
如果你對(duì)網(wǎng)絡(luò)安全感興趣,學(xué)習(xí)資源免費(fèi)分享,保證100%免費(fèi)?。。。ê倏腿腴T教程)
??網(wǎng)安(嘿客)全套學(xué)習(xí)視頻??
我們?cè)诳匆曨l學(xué)習(xí)的時(shí)候,不能光動(dòng)眼動(dòng)腦不動(dòng)手,比較科學(xué)的學(xué)習(xí)方法是在理解之后運(yùn)用它們,這時(shí)候練手項(xiàng)目就很適合了。
??網(wǎng)安(嘿客紅藍(lán)對(duì)抗)所有方向的學(xué)習(xí)路線****??
對(duì)于從來(lái)沒(méi)有接觸過(guò)網(wǎng)絡(luò)安全的同學(xué),我們幫你準(zhǔn)備了詳細(xì)的學(xué)習(xí)成長(zhǎng)路線圖。可以說(shuō)是最科學(xué)最系統(tǒng)的學(xué)習(xí)路線,大家跟著這個(gè)大的方向?qū)W習(xí)準(zhǔn)沒(méi)問(wèn)題。
學(xué)習(xí)資料工具包
壓箱底的好資料,全面地介紹網(wǎng)絡(luò)安全的基礎(chǔ)理論,包括逆向、八層網(wǎng)絡(luò)防御、匯編語(yǔ)言、白帽子web安全、密碼學(xué)、網(wǎng)絡(luò)安全協(xié)議等,將基礎(chǔ)理論和主流工具的應(yīng)用實(shí)踐緊密結(jié)合,有利于讀者理解各種主流工具背后的實(shí)現(xiàn)機(jī)制。
面試題資料
獨(dú)家渠道收集京東、360、天融信等公司測(cè)試題!進(jìn)大廠指日可待!
??嘿客必備開發(fā)工具??
工欲善其事必先利其器。學(xué)習(xí)嘿客常用的開發(fā)軟件都在這里了,給大家節(jié)省了很多時(shí)間。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-781739.html
這份完整版的網(wǎng)絡(luò)安全(嘿客)全套學(xué)習(xí)資料已經(jīng)上傳至CSDN官方,朋友們?nèi)绻枰c(diǎn)擊下方鏈接也可掃描下方微信二v碼獲取網(wǎng)絡(luò)工程師全套資料【保證100%免費(fèi)】
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-781739.html
如果你對(duì)網(wǎng)絡(luò)安全入門感興趣,那么你點(diǎn)擊這里??CSDN大禮包:《黑客&網(wǎng)絡(luò)安全入門&進(jìn)階學(xué)習(xí)資源包》免費(fèi)分享
到了這里,關(guān)于Web前端安全學(xué)習(xí)-CSRF的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!