CSRF 攻擊原理和防禦方法

來源:互聯網
上載者:User

標籤:

1. CSRF攻擊原理

CSRF(Cross site request forgery),即跨站請求偽造。我們知道XSS是跨站指令碼攻擊,就是在使用者的瀏覽器中執行攻擊者的指令碼,來獲得其cookie等資訊。而CSRF確實,借用使用者的身份,向web server發送請求,因為該請求不是使用者本意,所以稱為“跨站請求偽造”。

一般而且存在XSS漏洞的網站,也極有可能存在CSRF漏洞。因為CSRF攻擊中的那個“偽造的請求”的URL地址,一般是通過XSS攻擊來注入到伺服器中的。所以其實CSRF是以XSS為基礎的,也可以看做是XSS攻擊的一種。

CSRF一般的攻擊過程是,攻擊者向目標網站注入一個惡意的CSRF攻擊URL地址(跨站url),當(登入)使用者訪問某特定網頁時,如果使用者點擊了該URL,那麼攻擊就觸發了,我們可以在該惡意的url對應的網頁中,利用 <img src="" /> 來向目標網站發生一個get請求,該請求會攜帶cookie資訊,所以也就借用了使用者的身份,也就是偽造了一個請求,該請求可以是目標網站中的使用者有許可權訪問的任意請求。也可以使用javascript構造一個提交表單的post請求。比如構造一個轉賬的post請求。

所以CSRF的攻擊分為了兩步,首先要注入惡意URL地址,然後在該地址中寫入攻擊代碼,利用<img> 等標籤或者使用Javascript指令碼。

2. CSRF防禦

2.1 referer

因為偽造的請求一般是從第三方網站發起的,所以第一個防禦方法就是判斷 referer 頭,如果不是來自本網站的請求,就判定為CSRF攻擊。但是該方法只能防禦跨站的csrf攻擊,不能防禦同站的csrf攻擊(雖然同站的csrf更難)。

2.2 使用驗證碼

每一個重要的post提交頁面,使用一個驗證碼,因為第三方網站是無法獲得驗證碼的。還有使用手機驗證碼,比如轉賬是使用的手機驗證碼。

2.3 使用token

每一個網頁包含一個web server產生的token, 提交時,也將該token提交到伺服器,伺服器進行判斷,如果token不對,就判定位CSRF攻擊。

 

CSRF 攻擊原理和防禦方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.