天天看點

前端知識 |前端安全之CSRF

csrf/xsrf(cross-site request forgery),即跨站請求僞造,也被稱為“one click attack”或者session riding。基本原理是通過僞裝來自受信任使用者的請求來利用受信任的網站。

前端知識 |前端安全之CSRF

×××原理:

如圖所示,使用者首先通路網站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驗證沒什麼差別,隻是用法上的一些差別。