1. 程式人生 > >前端知識 |前端安全之CSRF

前端知識 |前端安全之CSRF

是不是 ima 微博 attack 用法 自動 鏈接 發現 text

CSRF/XSRF(Cross-Site Request Forgery),即跨站請求偽造,也被稱為“One Click Attack”或者Session Riding。基本原理是通過偽裝來自受信任用戶的請求來利用受信任的網站。
技術分享圖片
×××原理:
如圖所示,用戶首先訪問網站A,通過登錄身份驗證成功,網站A下發cookie保存在用戶的瀏覽器中。用戶又去訪問了網站B,網站B在下發用戶頁面的時候會有一個引誘點擊,這個引誘點擊一般是一個鏈接,這個鏈接一般指向網站A的一個存在漏洞的API接口,尤其這個API接口是GET類型。當用戶禁不住誘惑點擊了這個引誘點擊,這個點擊就訪問到了A網站,此時瀏覽器就會自動上傳cookie,此時網站A對cookie進行確認,發現是合法用戶,此時就會執行這個API的動作(以前微博就出現過CSRF×××,出問題的接口導致很多情況多了很多關註)。

總結
CSRF能造成×××的原理:
用戶登錄過網站A。
網站A中某一個接口存在著這種漏洞。這兩條件缺一不可。

防禦措施

1.Token驗證
×××原理中訪問漏洞接口的時候瀏覽器只上傳了cookie,沒有手動的上傳一個token。這個token是用戶登錄註冊甚至只是訪問網站A,服務器會自動向用戶本地存儲一個token,在用戶訪問各個接口的時候,如果沒帶這個token,服務器就不會通過驗證。所以當用戶點擊引誘鏈接,這個鏈接只會自動攜帶cookie,但是不會自動攜帶token,這樣就能避免×××。

2.Referer驗證
Referer,即頁面來源。服務器通過判斷頁面來源是不是自己站點的頁面來源,如果是就執行接口動作,如果不是一律攔截。這樣也能避免×××。

3.隱藏令牌
類似於Token驗證,原理是把token放在HTTP頭的自定義屬性中,而不是把信息放在鏈接上,增加了隱蔽性。本質上和Token驗證沒什麽區別,只是用法上的一些區別。

前端知識 |前端安全之CSRF