CSRF/XSRF跨站請求偽造 WHAT? WHY? HOW?


本文主要內(nèi)容有三點:

1. WHAT?

1-1. 什么是跨站請求偽造 CSRF途样,會造成什么后果鼻百?

2. WHY?

2-1. 為什么CSRF會有 1 中提及的危害,如何實現(xiàn)垫卤?

3. HOW?

3-1 如何防范CSRF?
3-2 CSRF與XSS結(jié)合
3-3 cookie的samesite屬性

1-1 什么是跨站請求偽造 CSRF父丰,會造成什么后果?

跨站請求偽造:CSRFXSRF(Cross Site Request Forgery)
攻擊者盜用目標網(wǎng)站的合法用戶的身份,向目標網(wǎng)站發(fā)送合法請求蛾扇。

2-1 為什么CSRF會有 1 中提及的危害攘烛,如何實現(xiàn)?

CSRF攻擊舉例:
1镀首、 用戶登錄了xx社交平臺坟漱,xx社交平臺在用戶本地cookie保存表征身份的token;
2更哄、用戶點擊郵件中鏈接或其他方式進入攻擊者的網(wǎng)站aahack.com芋齿,攻擊者網(wǎng)站aahack.com向xx社交平臺靜默發(fā)出 關(guān)注、點贊成翩、投票觅捆、轉(zhuǎn)賬等請求,由于攜帶了合法用戶的xx社交平臺的全部cookie麻敌,xx平臺認可為合法用戶的操作栅炒;

從CSRF攻擊的例子可以看出,若合法網(wǎng)站在cookie中存儲用戶的身份token且以此token作為用戶身份鑒權(quán)的部分(僅以此鑒權(quán)或結(jié)合其他字段鑒權(quán))术羔,則此網(wǎng)站一定存在CSRF的漏洞赢赊。無論在何頁面向此合法網(wǎng)站發(fā)送請求,都可以攜帶所有此網(wǎng)站已存在的所有cookie级历。
即實現(xiàn)CSRF有三點要素:

  1. 合法目標網(wǎng)站在cookie中存儲用戶的身份token且以此token作為用戶身份鑒權(quán)(僅以此鑒權(quán)或結(jié)合其他字段鑒權(quán)释移,結(jié)合其他字段鑒權(quán)的情況可參考3-2 CSRF與XSS結(jié)合);
  2. 合法用戶登陸了該合法目標網(wǎng)站寥殖,本地cookie中存有該token;
  3. 引導用戶進入攻擊網(wǎng)站 玩讳。

3-1 如何防范CSRF?

1. Server端驗證請求來源
Server端驗證Referer 和 Origin(但Origin只存在于post請求,Referer 和 Origin都可能為空扛禽,Referer可以被偽造)
2. 增加鑒權(quán)參數(shù)csrf-token

【2-1】csrf-token有兩種存放方式
在頁面中或在cookie中锋边,若服務端渲染的頁面可放在頁面中,前端渲染的頁面可以在response中set cookie编曼。
注意服務端Access-Control-Allow-Origin 不要設(shè)置為*豆巨,防止CSRF攻擊頁面請求目標網(wǎng)站頁面 通過解析respose得到頁面中存放的csrf-token或response header中的set-cookie
【2-2】 請求時將csrf-token加在header中
若通過xss等方式獲取到了csrf-token,csrf-token作為自定義字段加在header中時 該請求變成跨域的復雜請求掐场,瀏覽器會先發(fā)Options嗅探請求往扔,服務端可通過Access-Control-Allow-Origin和Access-Control-Allow-Methods進行攔截

3-2 CSRF與XSS結(jié)合

CSRF可在瀏覽器中向合法地址的請求中攜帶合法用戶的全部cookie,但不能操作cookie的值熊户,cookie之外的鑒權(quán)信息也獲取不到(除非合法地址的服務端特別設(shè)置了Access-Control-Allow-Origin:*)萍膛;

XSS可以獲取到頁面上幾乎所有的鑒權(quán)信息包含cookie和存儲在頁面上的信息,但是獲取不到httpOnly屬性被設(shè)置為true的cookie
(防xss還可以在response增加防xss的header頭x-xss-protection:1;mode=block // 開啟瀏覽器過濾xss,發(fā)現(xiàn)xss攻擊不刪除頁面嚷堡,只是阻止頁面加載
content-security-policy: default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none' //現(xiàn)代瀏覽器可以通過設(shè)置content-security-policy禁止不安全的內(nèi)聯(lián));

二者結(jié)合 則可以獲取到全量的cookie 和頁面信息蝗罗,并可以使用httpOnly屬性不為true的cookie
3. cookie中存儲的鑒權(quán)參數(shù)需設(shè)置httpOnly屬性為true

3-3 cookie的屬性samesite

此屬性為17年新定義艇棕,只有較新版本的瀏覽器支持
Strict、Lax
Strict:當發(fā)生跨站請求時串塑,瀏覽器發(fā)出的請求不會攜帶目標網(wǎng)站的cookie沼琉;
Lax:當用戶主動點擊而發(fā)生跨站請求時,瀏覽器發(fā)出的請求會攜帶目標網(wǎng)站的cookie桩匪;

tips: 跨站不是跨域打瘪, 是根據(jù)Public Suffix List 來判斷
4. 合理設(shè)置網(wǎng)站cookie的samesite屬性

綜上,防范CSRF可參考四點:

1. Server端驗證請求來源
2. 增加鑒權(quán)參數(shù)csrf-token
3. cookie中存儲的鑒權(quán)參數(shù)需設(shè)置httpOnly屬性為true
4. 合理設(shè)置網(wǎng)站cookie的samesite屬性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末傻昙,一起剝皮案震驚了整個濱河市闺骚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妆档,老刑警劉巖僻爽,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異过吻,居然都是意外死亡进泼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門纤虽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乳绕,“玉大人,你說我怎么就攤上這事逼纸⊙蟠耄” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵杰刽,是天一觀的道長菠发。 經(jīng)常有香客問我,道長贺嫂,這世上最難降的妖魔是什么滓鸠? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮第喳,結(jié)果婚禮上糜俗,老公的妹妹穿的比我還像新娘。我一直安慰自己曲饱,他們只是感情好悠抹,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著扩淀,像睡著了一般楔敌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驻谆,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天卵凑,我揣著相機與錄音庆聘,去河邊找鬼。 笑死勺卢,一個胖子當著我的面吹牛掏觉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播值漫,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼织盼!你這毒婦竟也來了杨何?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤沥邻,失蹤者是張志新(化名)和其女友劉穎危虱,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唐全,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡埃跷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了邮利。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弥雹。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖延届,靈堂內(nèi)的尸體忽然破棺而出剪勿,到底是詐尸還是另有隱情,我是刑警寧澤方庭,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布厕吉,位于F島的核電站,受9級特大地震影響械念,放射性物質(zhì)發(fā)生泄漏头朱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一龄减、第九天 我趴在偏房一處隱蔽的房頂上張望项钮。 院中可真熱鬧,春花似錦欺殿、人聲如沸寄纵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽程拭。三九已至,卻和暖如春棍潘,著一層夾襖步出監(jiān)牢的瞬間恃鞋,已是汗流浹背崖媚。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恤浪,地道東北人畅哑。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像水由,于是被迫代替她去往敵國和親荠呐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容