先看看全程,跨站請(qǐng)求偽造:Cross-Site Request Forgery 縮寫CSRF
舉個(gè)真實(shí)例子吧,我大學(xué)時(shí)候舍友的親身經(jīng)歷,他在斗魚看一個(gè)主播1元買LOL皮膚然后就上套了哈哈,不過(guò)現(xiàn)在想想那主播特么是個(gè)前端大佬啊。跪拜~~? ?就是我舍友通過(guò)他的鏈接進(jìn)入支付頁(yè)面,實(shí)際就是登錄了銀行站點(diǎn),第一次確實(shí)是銀行的頁(yè)面拿到cookie,然后接著用一個(gè)偽造頁(yè)面誘騙你點(diǎn)擊,就是1元買199皮膚的頁(yè)面,他偽造了一個(gè)支付請(qǐng)求因?yàn)橛兄暗腸ookie成功騙過(guò)銀行用戶認(rèn)證,實(shí)際是支付600塊(當(dāng)時(shí)他實(shí)際被騙了多少忘記了哈哈反正也大幾百了),然后也彈出讓他輸支付密碼,他也就老老實(shí)實(shí)輸了,然后又是一個(gè)偽造頁(yè)面顯示成功支付1元,沒(méi)幾秒手機(jī)短信過(guò)來(lái)幾百塊大洋被轉(zhuǎn)走了。。。天上不會(huì)掉餡餅,大家不要貪小便宜呀,都是有坑的,真想掉餡餅就去買雙色球,說(shuō)不定就~~哈哈哈
好了,說(shuō)一說(shuō)防護(hù)措施吧
1.加Token驗(yàn)證
訪問(wèn)接口的時(shí)候,瀏覽器自動(dòng)上傳cookie,但是沒(méi)有手動(dòng)上傳一個(gè)Token,這個(gè)Token是你注冊(cè)成功
以后,或者沒(méi)有注冊(cè),只要你訪問(wèn)了這個(gè)網(wǎng)站,服務(wù)器會(huì)自動(dòng)的向你本地存儲(chǔ)一個(gè)Token,在你訪問(wèn)
各種接口的時(shí)候,如果沒(méi)帶Token,,就不能幫你通過(guò)驗(yàn)證,如果只是點(diǎn)擊了引誘鏈接,這個(gè)鏈接只會(huì)
自動(dòng)攜帶cookie,不會(huì)自動(dòng)攜帶Token,所以就避免了那個(gè)攻擊。
2.Referer驗(yàn)證
Referer指的是頁(yè)面來(lái)源,如果服務(wù)器判斷頁(yè)面來(lái)的是不是我的這個(gè)站點(diǎn)下面的頁(yè)面,如果是就執(zhí)行
你這個(gè)動(dòng)作,如果不是就攔截。
3.隱藏令牌
和Token有點(diǎn)像,做法:隱藏在http的head頭中,不會(huì)放在鏈接上,這樣就做的比較隱蔽。本質(zhì)上沒(méi)
有太大區(qū)別。只是使用方式有一點(diǎn)差別。
over~