回顧:xss的攻擊方式?
xss的攻擊方式是黑客往使用者的頁面中注入惡意指令碼,然後再通過惡意指令碼將使用者頁面的資料上傳到黑客的伺服器上,最後黑客再利用這些資料進行一些惡意操作。
什麼是csrf攻擊?
csrf(跨站請求偽造),是指黑客引誘使用者開啟黑客的**,在黑客的**中,利用使用者的登入狀態發起的跨站請求。即:csrf攻擊就是黑客利用了使用者的登入狀態,並通過第三方的站點來做一些壞事。
黑客實施csrf攻擊的方式有哪些?
和xss不同的是,csrf攻擊不需要將惡意**注入使用者的頁面,僅僅是利用伺服器的漏洞和使用者的登入狀態來實施攻擊。(因此關鍵因素是找到伺服器的漏洞)csrf攻擊是源於web的隱式身份驗證機制!web的身份驗證機制雖然可以保證乙個請求是來自於某個使用者的瀏覽器,但卻無法保證該請求是使用者批准傳送的
發起csrf攻擊的三個必要條件:
三個條件缺一不可。
csrf的防禦?
由於黑客會利用使用者的登入狀態來發起csrf攻擊,而cookie正是瀏覽器和伺服器之間維護登入狀態的乙個關鍵資料,因此為了阻止csrf,可以在cookie上做文章。
比如:從第三方站點傳送請求時禁止cookie傳送到伺服器,從而是黑客的csrf攻擊失效。
如何做:在 http 響應頭中,通過set-cookie
字段設定 cookie 時,可以帶上samesite
選項。而samesite
選項通常有strict、 lax 和 none
三個值。
strict
最為嚴格,設定了strict,瀏覽器會完全禁止第三方 cookie
lax
相對寬鬆,從第三方站點的鏈結開啟或者從第三方站點提交get方式的表單會攜帶cookie,其他的不會。
none
,任何情況下都會傳送cookie資料
在伺服器端驗證請求**的站點。通過http請求頭中的referer或者origin
。但由於referer會攜帶請求的資料和url等資訊,因此不推薦referer
,可以帶上origin
屬性,將網域名稱資訊傳送給伺服器。伺服器優先根據origin
攜帶的網域名稱資訊來判斷是否是第三方站點,若是,則禁止請求。若請求頭中沒有包含origin
屬性,再根據實際情況判斷是否使用referer
值
CSRF攻擊原理
假設a.cn這個 是乙個xx管理系統,我只有這個系統的普通使用者的賬戶,這個賬戶功能很有限,沒有管理員賬戶的許可權大,只有管理員賬戶能新增其它的管理員賬戶,我在使用這個 的過程中發現這個 在新增管理員的時候沒有驗證碼或者token驗證,只需要輸入賬號和密碼就可以新增管理員了,這樣的話意味著可以被cs...
CSRF攻擊原理
csrf cross site request forgery 跨站請求偽造,也被稱為 one click attack 或者session riding,通常縮寫為csrf或者xsrf,是一種對 的惡意利用。儘管聽起來像跨站指令碼 xss 但它與xss非常不同,xss利用站點內的信任使用者,而cs...
防止CSRF攻擊
2.新增校驗token。前端發出請求時,加入從後端返回的token欄位的值 不能儲存在cookie中 攻擊者無法偽造的值 如果token不正確,不通過請求。3.設定 cookie 的samesite屬性 lax 相對嚴格模式,大多數情況下不傳送 cookie,導航到目標 的 get 請求除外。請求型...