跨站請求偽造(CSRF)

什么是 CSRF?

????CSRF Cross-site request forgery因宇,稱為“跨站請求偽造”葛作,是指黑客引誘用戶打開?黑客的網站箭窜,在黑客的網站中膀篮,利用用戶的登錄狀態(tài)發(fā)起的跨站請求嘹狞。簡單來講,CSRF攻擊就是黑客利用了用戶的登錄狀態(tài)誓竿,并通過第三方的站點來做一些壞事磅网。

攻擊過程

CSRF 如何攻擊

? ? 1. 用戶登陸網站 A, 網站 A 返回了 登陸狀態(tài) Cookie筷屡;

? ? 2. 用戶又登陸黑客的網站 B涧偷, 此時

? ? ? ? ? ? ① 自動發(fā)請 GET 請求

?????????????????網站 B 中有 圖片,該圖片的地址指向 網站 A

? ? ? ? ? ? ? ? <img src=''http:// 網站 A / 轉賬或者其他接口" />

? ? ? ? ? ? 這樣會自動發(fā)起 img 請求毙死, 請求 A 的時候 會自動帶上 A 的 Cookie, 那么 網站 A 如果沒有做相應的處理的話燎潮,就會轉賬 或者 其他操作;

? ? ? ? ? ? ② 自動發(fā)請?POST 請求

? ? ? ? ? ? ? ? 網站 B 中有一個隱藏的表單扼倘,表單的 action 就是 A 網站轉賬或其他操作接口确封,用戶 打開 網站 B 會自動 提交表單。此?構建自動提交表單這種方式再菊,就可以自動實現(xiàn)跨站點 POST 數(shù)據提交爪喘。

?自動發(fā)請?POST 請求

? ? ③ 引用用戶點擊鏈接

? ? ? ? ? ? 這種方式跟 ① 差不多,只是多了一個點擊的步驟袄简,黑客網站 B 上有 誘惑的圖片腥放,誘導用戶點擊 圖片下載的地址

? ??????????<a src=''http:// 網站 A / 轉賬或者其他接口" > 點擊下載</a>

? ? ? ? ? ? 方式 和 ① 一樣 ,只是 需要用戶點擊绿语。

? ? 注意:?和XSS不同的是秃症,CSRF攻擊不需要將惡意代碼注入用戶的頁面候址,僅僅是利用服務器的漏洞和用戶的登錄狀態(tài)來實施攻擊。


預防措施

? ??要發(fā)起CSRF攻擊需要具備三個條件:目標站點存在漏洞种柑、用戶要登錄過目標站點?和?黑客需要通過第三方站點發(fā)起攻擊岗仑。

? ? 1. 驗證碼

? ? ? ? 對于每一次的請求,要求用戶驗證聚请,以確保請求的真是可靠荠雕。

? ? 2.?Referer 檢查、Origin 檢查

? ? ? ? 驗證請求的來源網站驶赏,檢查發(fā)起請求的服務器炸卑,是否為目標服務器。HTTP 請求中的 Referer 頭傳遞了當前請求的域名煤傍,如果此域名是非法服務器的域名盖文,則需要禁止訪問;

? ??????但在服務器端驗證請求頭中的 Referer 并不是太可靠蚯姆,因此又制定了 Origin 屬性五续,在?些重要的場合,比如通過 XMLHttpRequest龄恋、Fecth 發(fā)起跨站請求或者通過 Post 方法發(fā)送請求時疙驾,都會帶上Origin屬性。

? ??????Origin屬性只包含了域名信息郭毕,并沒有包含具體的 URL 路徑它碎,這是 Origin 和 Referer 的?個主要區(qū)別。

? ??????因此铣卡,服務器的策略是優(yōu)先判斷 Origin链韭,如果請求頭中沒有包含 Origin 屬性偏竟,再根據實際情況判斷是否使用 Referer 值煮落。

? ? 3. Token

? ??????在瀏覽器向服務器發(fā)起請求時,服務器生成?個CSRF Token踊谋,這段隨機碼由用戶保存蝉仇,每次請求必須帶上 token。

? ? 4. Cookie 的?SameSite 屬性

? ???????客會利用用戶的登錄狀態(tài)來發(fā)起 CSRF 攻擊殖蚕,而 Cookie 正是瀏覽器和服務器之間維護登錄狀態(tài)的?個關鍵數(shù)據轿衔。

? ??????通常CSRF攻擊都是從第三方站點發(fā)起的,要防止 CSRF 攻擊睦疫,我們最好能實現(xiàn)從第三方站點發(fā)送請求時禁止 Cookie 的發(fā)送害驹,因此在瀏覽器通過不同來源發(fā)送 HTTP 請求時,我們需要進行區(qū)分:

? ? ? ? ????1. 如果是從第三方站點發(fā)起的請求蛤育,那么需要瀏覽器禁止發(fā)送某些關鍵 Cookie 數(shù)據到服務器宛官;

? ? ? ? ????2. 如果是同?個站點發(fā)起的請求葫松,那么就需要保證 Cookie 數(shù)據正常發(fā)送。

? ? ????????我們可以通過設置?set-cookie 的?SameSite底洗, SameSite 選項通常有 Strict腋么、Lax 和 None 三個值。

? ??????Strict最為嚴格亥揖,瀏覽器會完全禁止第三方 Cookie珊擂,比如 A 網站的 Cookie 設置了這個屬性,那么 B 網站訪問 A 费变,Cookie 是不會發(fā)送到 A 網站上的摧扇,只有 A 的站點 去請求 A 服務器,才會帶上;

? ??????Lax 相對寬松?點赖阻。在跨站點的情況下峡扩,從第三方站點的鏈接打開和從第三方站點提交Get?式的表單這兩種?式都會攜帶Cookie。但如果在第三方站點中使用 Post 方法庇绽,或者通過img、iframe等標簽加載的URL橙困,這些場景都不會攜帶 Cookie瞧掺;

????????使用 None 的話,在任何情況下都會發(fā)送 Cookie 數(shù)據凡傅。

? ? ? ? 所以在實際情況下辟狈,我們將?些關鍵的 Cookie 設置為 Strict 或者 Lax 模式,這樣在跨站點請求時夏跷,這些關鍵的 Cookie 就不會被發(fā)送到服務器哼转,這樣 CSRF 就會攻擊失效。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末槽华,一起剝皮案震驚了整個濱河市壹蔓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌猫态,老刑警劉巖佣蓉,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異亲雪,居然都是意外死亡勇凭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門义辕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虾标,“玉大人,你說我怎么就攤上這事灌砖¤岛” “怎么了贞让?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長柳譬。 經常有香客問我喳张,道長,這世上最難降的妖魔是什么美澳? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任销部,我火速辦了婚禮,結果婚禮上制跟,老公的妹妹穿的比我還像新娘舅桩。我一直安慰自己,他們只是感情好雨膨,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布擂涛。 她就那樣靜靜地躺著,像睡著了一般聊记。 火紅的嫁衣襯著肌膚如雪撒妈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天排监,我揣著相機與錄音狰右,去河邊找鬼。 笑死舆床,一個胖子當著我的面吹牛棋蚌,可吹牛的內容都是我干的。 我是一名探鬼主播挨队,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谷暮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盛垦?” 一聲冷哼從身側響起湿弦,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎情臭,沒想到半個月后省撑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡俯在,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了娃惯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跷乐。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖趾浅,靈堂內的尸體忽然破棺而出愕提,到底是詐尸還是另有隱情馒稍,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布浅侨,位于F島的核電站纽谒,受9級特大地震影響,放射性物質發(fā)生泄漏如输。R本人自食惡果不足惜鼓黔,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望不见。 院中可真熱鬧澳化,春花似錦、人聲如沸稳吮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灶似。三九已至列林,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間酪惭,已是汗流浹背席纽。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撞蚕,地道東北人润梯。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像甥厦,于是被迫代替她去往敵國和親纺铭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354