前端 跨站請求偽造 CSRF攻擊 理解

2022-01-17 11:06:52 字數 1229 閱讀 4568

一  概念

你這可以這麼理解csrf攻擊:攻擊者盜用了你的身份,以你的名義傳送惡意請求。csrf能夠做的事情包括:以你名義傳送郵件,發訊息,盜取你的賬號,甚至於購買商品,虛擬貨幣轉賬......造成的問題包括:個人隱私洩露以及財產安全。

二  過程

1  受害者 bob 在銀行有一筆存款,通過對銀行的**傳送請求 可以使 bob 把 1000000 的存款轉到 bob2 的賬號下。

2  通常情況下,該請求傳送到**後,伺服器會先驗證該請求是否來自乙個合法的 session,並且該 session 的使用者 bob 已經成功登陸。

3  黑客 mallory 自己在該銀行也有賬戶,他知道上文中的 url 可以把錢進行轉帳操作。mallory 可以自己傳送乙個請求給銀行:

但是這個請求來自 mallory 而非 bob,他不能通過安全認證,因此該請求不會起作用。

4  這時,mallory 想到使用 csrf 的攻擊方式,他先自己做乙個**,在**中放入如下**: src=」 」,並且通過廣告等誘使 bob 來訪問他的**。

5  當 bob 訪問該**時,上述 url 就會從 bob 的瀏覽器發向銀行,而這個請求會附帶 bob 瀏覽器中的 cookie 一起發向銀行伺服器。大多數情況下,該請求會失敗,因為他要求 bob 的認證資訊。

6  但是,如果 bob 當時恰巧剛訪問他的銀行後不久,他的瀏覽器與銀行**之間的 session 尚未過期,瀏覽器的 cookie 之中含有 bob 的認證資訊。

這時,悲劇發生了,這個 url 請求就會得到響應,錢將從 bob 的賬號轉移到 mallory 的賬號,而 bob 當時毫不知情。等以後 bob 發現賬戶錢少了,即使他去銀行查詢日誌,他也只能發現確實有乙個來自於他本人的合法請求轉移了資金,沒有任何被攻擊的痕跡。而 mallory 則可以拿到錢後逍遙法外。

三  基本過程**如下:

四  總結

使用者和**通過正常登陸,建立了信任關係,在這種信任關係的有效期內,使用者通過廣告等形式進入了攻擊者的**,攻擊者會在自己的**內訪問與使用者建立的信任關係的**的某些敏感操作,而此時,使用者和**還在信任有效期內。

並不是只有get請求才能被csrf,攻擊者同樣可以通過表單完成一次post的csrf攻擊。

五   防禦

1. 判斷referer:並不好,

見[花式繞過csrf技巧]

(2. jwt,比較常用,後端返回token,localstorage是有跨域限制的,其他網域名稱無法訪問信任域的快取,每次請求在請求上帶上token。

CSRF跨站請求偽造攻擊 筆記

csrf cross site request forgery 跨站請求偽造,也被稱為 one click attack 或者session riding,通常縮寫為csrf或者xsrf,是一種對 的惡意利用。儘管聽起來像跨站指令碼 xss 但它與xss非常不同,xss利用站點內的信任使用者,而cs...

跨站請求偽造 CSRF

跨站請求偽造 csrf 顧名思義就是在其他非法 呼叫了正常 的介面,攻擊的方法是在頁面中包含惡意 或者鏈結,攻擊者認為被攻擊的使用者有權訪問另乙個 如果使用者在那個 的會話沒有過期,攻擊者就能執行未經授權的操作。大多數 rails 程式都使用 cookie 儲存會話,可能只把會話 id 儲存在 co...

CSRF跨站請求偽造

前面說到xss跨站指令碼攻擊,現在來個複雜度更高一點的csrf跨站請求偽造 首先說一下rsrf的幾個要點 1.rsrf是通過各種方法 站內發布鏈結,qq郵箱發布鏈結等 讓登入使用者觸發請求,在使用者不覺察的過程中對使用者資料進行篡改,進而實現攻擊 2.通過xss可以獲取到使用者的session id...