CRSF 原理以及預防

crsf攻擊原理

CRSF(跨站請求僞造)是攻擊站點僞造請求,冒充用戶身份在受信任站點進行操做。具體過程以下:javascript

(1)用戶向信任站點如example.com發送請求java

(2)用戶驗證經過、得到信任站點的身份信息,並放入cookie中,用戶此時能夠在站內進行其餘請求瀏覽器

(3)用戶未退出登陸example.com,而後訪問hack.com網站,該網站返回攻擊性代碼而且在頁面中存在訪問example.com的請求cookie

(4)瀏覽器在用戶可能不知情的狀況下向example.com發送請求網站

(5)因爲同域名能夠帶上cookie信息,所以信息認證經過,請求僞形成功
imagecode

crsf預防方式

(1)檢測請求來源token

在請求頭中有一個refree字段,refree記錄了發送請求的域名,好比:hack.com向example.com中發送請求,那麼refree就爲hack.com,只要在處理請求中作相應的校驗就能夠中斷請求。ip

(2)加入token校驗get

crsf之因此可以僞造請求成功,其緣由之一在於全部的用戶信息放於cookie中;所以能夠在每次請求中加入token,而後後臺進行校驗,若是校驗經過則進行處理。生成token方式之一以下:hash

function getToken (token) {

    var str = token || '';
    var hash = 5381;
    for (var i = 0, len = str.length; i < len; ++i) {
        hash += (hash << 5) + str.charCodeAt(i);
    }
    return hash & 0x7fffffff;
}
相關文章
相關標籤/搜索