本文章轉(zhuǎn)載于搜狗測試
今天說下owasp漏洞排行榜前十的成員——CSRF
概念
概念不多說鼎姐,下面講原理,CSRF(Cross-site request forgery)炕桨,中文名稱:跨站請求偽造;
背景知識
一钥平、頁面內(nèi)請求:熟悉htnl的同學(xué)都知道姊途,頁面內(nèi)請求有好多種方式知态,常見的例如:ajax立叛、js的onload事件,甚至圖片請求秘蛇,這里不一一介紹了(因為這個不是重點),這里不一一介紹了(因為這個不是重點
二妖泄、消費類網(wǎng)站的實現(xiàn)原理:主流的消費類網(wǎng)站應(yīng)該都是通過請求參數(shù)(get或者post)來實現(xiàn)消費艘策;
例:某論壇可以消費積分兌換禮品用戶登錄后可以填寫表單(參數(shù):兌換什么禮品、收件地址朋蔫、收件人信息。。病涨。),然后post到服務(wù)器赎懦,服務(wù)器可能會做簡單的cookie校驗幻工,通過后生成訂單信息,扣除相應(yīng)積分囊颅,后續(xù)快遞禮品;
攻擊原理
簡單圖示:
代碼舉例:
論壇消費請求表單:
收件人:
收件人地址:
收件人電話:
只需要填寫收件人信息盲憎,就可以提交訂單胳挎,消費積分兌換獎品
惡意網(wǎng)頁中含有這段代碼:
所以,在瀏覽器解釋html時窑眯,就會發(fā)出這條請求,服務(wù)端如果沒做特殊處理的話磅甩,只會校驗用戶登錄時種下的cookie,并完成下單铛铁,這樣黑客張三就順利的免費兌換了獎品却妨;
上面的例子比較極端,真正的消費類網(wǎng)站不會這么二的使用get處理支付請求彪标,但是即使換成post又如何呢?如果服務(wù)端不做防范的話薄声,“張三只需要稍稍改動惡意網(wǎng)頁的代碼就能完成同樣的工作”
如何防御
常見的防御csrf攻擊的方式有以下幾種:
在cookie中增加一個包含當前時間戳的加密的token字段题画,服務(wù)端在接收到消費請求時,校驗cookie種的token缩幸;
消費請求增加圖片驗證碼竞思,服務(wù)端檢驗驗證碼表谊;
校驗消費請求的Refer盖喷,過濾非官方域的消費請求;
web安全漏洞的種類繁多距辆,每一種漏洞都涉及到很多前端暮刃、服務(wù)端的內(nèi)容,而且有很多變種漂彤,歡迎大家留言,共同討論學(xué)習(xí)各種安全漏洞的原理及防御方法挫望;