CSRF跨站點請求偽造原理及防禦

2021-08-19 03:49:46 字數 951 閱讀 8912

csrf攻擊原理比較簡單,如圖1所示。其中web a為存在csrf漏洞的**,web b為攻擊者構建的惡意**,user c為web a**的合法使用者。

圖1 csrf攻擊原理

1. 使用者c開啟瀏覽器,訪問受信任**a,輸入使用者名稱和密碼請求登入**a;

2.在使用者資訊通過驗證後,**a產生cookie資訊並返回給瀏覽器,此時使用者登入**a成功,可以正常傳送請求到**a;

3. 使用者未退出**a之前,在同一瀏覽器中,開啟乙個tab頁訪問**b;

4. **b接收到使用者請求後,返回一些攻擊性**,並發出乙個請求要求訪問第三方站點a;

5. 瀏覽器在接收到這些攻擊性**後,根據**b的請求,在使用者不知情的情況下攜帶cookie資訊,向**a發出請求。**a並不知道該請求其實是由b發起的,所以會根據使用者c的cookie資訊以c的許可權處理該請求,導致來自**b的惡意**被執行。

總的來說,它就是利用cookie,來盜取使用者許可權,從此進行操作。

cookie有session和local兩種。前者是臨時的,會話關閉之後就沒有了,後者是儲存在本地的,當快取過期之後才消失。

csrf為什麼能夠攻擊成功呢?其本質原因是重要操作的所有引數都是可以被攻擊者猜測到的。

攻擊者只有**出url的所有引數與引數值,才能成功地構造乙個偽造的請求,反之,攻擊者將無法攻擊成功。出於這個原因,可以想到乙個解決方案:把引數加密,或者使用一些隨機數,從而讓攻擊者無法猜測到引數值。

1.驗證碼。

由於csrf的攻擊點在於瀏覽器分不清是使用者傳送的資料還是攻擊者傳送的資料,所以每次提交重要資訊都要求輸入驗證碼,這樣可以保證資訊是安全的。

2.伺服器隨機生成乙個token傳送

,這樣在請求中的cookie中要是有匹配的token,就認為是安全的請求,否則就可能有安全問題。但是token要建立在沒有xss漏洞的基礎上,如果有xss漏洞,那麼攻擊者通過獲得頁面,同樣可以從cookie中獲得token然後進行模擬操作。

CSRF跨站點偽造攻擊?

跨站點偽造,顧名思義,在另外乙個站點存在著訪問被攻擊站點的鏈結,鏈結觸發後會攜帶被攻擊連線的cookie。這樣就偽造了一條非使用者自身的操作。危險!假如有以下場景 1 你在某社交 上面進行了登入。使用完後並沒有登出,而 使用cookie標識使用者狀態。2 此時你訪問了某個知名顏色 這個 html 中...

跨站點請求偽造 CSRF 總結和防禦

構建乙個位址,比如說是刪除某個部落格 部落格的鏈結,然後誘使已經登入過該 的使用者點選惡意鏈結,可能會導致使用者通過自己的手將曾經發布在該 的部落格在不知情的情況下刪除了。這種構建惡意鏈結,假借受害者的手造成損失的攻擊方式就叫csrf 跨站點請求偽造。cookie分類 cookie根據有無設定過期時...

跨站請求偽造 CSRF

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