CSRF是什么?
CSRF(Cross Site Request Forgery),中文是跨站點請求偽造。CSRF攻擊者在用戶已經(jīng)登錄目標(biāo)網(wǎng)站之后,誘使用戶訪問一個攻擊頁面,利用目標(biāo)網(wǎng)站對用戶的信任,以用戶身份在攻擊頁面對目標(biāo)網(wǎng)站發(fā)起偽造用戶操作的請求,達到攻擊目的.
CSRF攻擊的本質(zhì)原因
CSRF攻擊是源于Web的隱式身份驗證機制!Web的身份驗證機制雖然可以保證一個請求是來自于某個用戶的瀏覽器,但卻無法保證該請求是用戶批準(zhǔn)發(fā)送的。CSRF攻擊的一般是由服務(wù)端解決
CSRF漏洞原理:
因為web應(yīng)用程序在用戶進行敏感操作時(修改密碼,轉(zhuǎn)賬等),沒有校驗token或者http請求頭的referfer值,從而導(dǎo)致惡意攻擊者利用用戶身份(cookie)完成攻擊行為.(簡單的身份驗證只能保證請求發(fā)自某個用戶的瀏覽器,卻不能保證請求本身是用戶自愿發(fā)出的。)
CSRF攻擊的原理:

CSRF可以干什么:
1.盜取或修改賬號
2.個人身份泄露以及財產(chǎn)安全
3.對用戶的賬號進行操作
-------
CSRF工具的防御手段:
1. 盡量使用POST,限制GET
2. 添加驗證碼(驗證碼,強制用戶必須與應(yīng)用進行交互,才能完成最終請求。在通常情況下,驗證碼能很好遏制CSRF攻擊)
3.驗證referer(HTTP Referer是header的一部分,當(dāng)瀏覽器向web服務(wù)器發(fā)送請求的時候,會帶上Referer,通過驗證Referer,可以判斷請求的合法性,如果Referer是其他網(wǎng)站的話,就有可能是CSRF攻擊,則拒絕該請求。)
4.使用token(這個Token的值必須是隨機的,不可預(yù)測的。由于Token的存在,攻擊者無法再構(gòu)造一個帶有合法Token的請求實施CSRF攻擊。另外使用Token時應(yīng)注意Token的保密性,盡量把敏感操作由GET改為POST,以form或AJAX形式提交,避免Token泄露)