CSRF 攻擊是什么蝎宇?如何防范?

CSRF (Cross Site Request Forgery)攻擊运杭,中文名:跨站請(qǐng)求偽造夫啊。

其原理是攻擊者構(gòu)造網(wǎng)站后臺(tái)某個(gè)功能接口的請(qǐng)求地址,誘導(dǎo)用戶去點(diǎn)擊或者用特殊方法讓該請(qǐng)求地址自動(dòng)加載辆憔。用戶在登錄狀態(tài)下這個(gè)請(qǐng)求被服務(wù)端接收后會(huì)被誤以為是用戶合法的操作撇眯。對(duì)于 GET 形式的接口地址可輕易被攻擊,對(duì)于 POST 形式的接口地址也不是百分百安全虱咧,攻擊者可誘導(dǎo)用戶進(jìn)入帶 Form 表單可用POST方式提交參數(shù)的頁面熊榛。

CSRF攻擊是源于WEB的隱式身份驗(yàn)證機(jī)制,WEB的身份驗(yàn)證機(jī)制雖然可以保證一個(gè)請(qǐng)求是來自于某個(gè)用戶的瀏覽器腕巡,但卻無法保證該請(qǐng)求是用戶批準(zhǔn)發(fā)送的玄坦。

對(duì)于CSRF的防御也分為服務(wù)端防御與客戶端防御,服務(wù)端防御典型的譬如給某個(gè)頁面添加隨機(jī)數(shù)绘沉,使得無法從第三方頁面直接提交煎楣。在客戶端防御的話可以利用譬如Firefox提供的一些檢查工具。

CSRF漏洞檢測(cè):


抓取一個(gè)正常請(qǐng)求的數(shù)據(jù)包车伞,去掉Referer字段后再重新提交择懂,如果該提交還有效,那么基本上可以確定存在CSRF漏洞另玖。

也可以使用專門針對(duì)CSRF漏洞進(jìn)行檢測(cè)的工具困曙,如CSRFTester表伦,CSRF Request Builder等。

以CSRFTester工具為例慷丽,CSRF漏洞檢測(cè)工具的測(cè)試原理如下:使用CSRFTester進(jìn)行測(cè)試時(shí)蹦哼,首先需要抓取我們?cè)跒g覽器中訪問過的所有鏈接以及所有的表單等信息,然后通過在CSRFTester中修改相應(yīng)的表單等信息要糊,重新提交纲熏,這相當(dāng)于一次偽造客戶端請(qǐng)求。如果修改后的測(cè)試請(qǐng)求成功被網(wǎng)站服務(wù)器接受杨耙,則說明存在CSRF漏洞赤套,當(dāng)然此款工具也可以被用來進(jìn)行CSRF攻擊。

防范措施: anti-csrf-token方案


?目前防御 CSRF 攻擊主要有三種策略:驗(yàn)證 HTTP Referer 字段珊膜;在請(qǐng)求地址中添加 token 并驗(yàn)證容握;在 HTTP 頭中自定義屬性并驗(yàn)證。

驗(yàn)證 HTTP Referer 字段

服務(wù)端在收到路由請(qǐng)求時(shí)车柠,生成一個(gè)隨機(jī)數(shù)剔氏,在渲染請(qǐng)求頁面時(shí)把隨機(jī)數(shù)埋入頁面(一般埋入 form 表單內(nèi),)

服務(wù)端設(shè)置setCookie竹祷,把該隨機(jī)數(shù)作為cookie或者session種入用戶瀏覽器

當(dāng)用戶發(fā)送 GET 或者 POST 請(qǐng)求時(shí)帶上_csrf_token參數(shù)(對(duì)于 Form 表單直接提交即可谈跛,因?yàn)闀?huì)自動(dòng)把當(dāng)前表單內(nèi)所有的 input 提交給后臺(tái),包括_csrf_token)

后臺(tái)在接受到請(qǐng)求后解析請(qǐng)求的cookie獲取_csrf_token的值塑陵,然后和用戶請(qǐng)求提交的_csrf_token做個(gè)比較感憾,如果相等表示請(qǐng)求是合法的。

?這種方法的顯而易見的好處就是簡(jiǎn)單易行令花,網(wǎng)站的普通開發(fā)人員不需要操心 CSRF 的漏洞阻桅,只需要在最后給所有安全敏感的請(qǐng)求統(tǒng)一增加一個(gè)攔截器來檢查 Referer 的值就可以。特別是對(duì)于當(dāng)前現(xiàn)有的系統(tǒng)兼都,不需要改變當(dāng)前系統(tǒng)的任何已有代碼和邏輯嫂沉,沒有風(fēng)險(xiǎn),非常便捷扮碧。

? ? ? ? 然而趟章,這種方法并非萬無一失。Referer 的值是由瀏覽器提供的慎王,雖然 HTTP 協(xié)議上有明確的要求蚓土,但是每個(gè)瀏覽器對(duì)于 Referer 的具體實(shí)現(xiàn)可能有差別,并不能保證瀏覽器自身沒有安全漏洞赖淤。使用驗(yàn)證 Referer 值的方法北戏,就是把安全性都依賴于第三方(即瀏覽器)來保障,從理論上來講漫蛔,這樣并不安全嗜愈。事實(shí)上,對(duì)于某些瀏覽器莽龟,比如 IE6 或 FF2蠕嫁,目前已經(jīng)有一些方法可以篡改 Referer 值。如果 bank.example 網(wǎng)站支持 IE6 瀏覽器毯盈,黑客完全可以把用戶瀏覽器的 Referer 值設(shè)為以 bank.example 域名開頭的地址剃毒,這樣就可以通過驗(yàn)證,從而進(jìn)行 CSRF 攻擊搂赋。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赘阀,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子脑奠,更是在濱河造成了極大的恐慌基公,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宋欺,死亡現(xiàn)場(chǎng)離奇詭異轰豆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)齿诞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門酸休,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祷杈,你說我怎么就攤上這事斑司。” “怎么了但汞?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵宿刮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我特占,道長(zhǎng)糙置,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任是目,我火速辦了婚禮谤饭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘懊纳。我一直安慰自己揉抵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布嗤疯。 她就那樣靜靜地躺著冤今,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茂缚。 梳的紋絲不亂的頭發(fā)上戏罢,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天屋谭,我揣著相機(jī)與錄音,去河邊找鬼龟糕。 笑死桐磁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的讲岁。 我是一名探鬼主播我擂,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼缓艳!你這毒婦竟也來了校摩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤阶淘,失蹤者是張志新(化名)和其女友劉穎衙吩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舶治,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡分井,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了霉猛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尺锚。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖惜浅,靈堂內(nèi)的尸體忽然破棺而出瘫辩,到底是詐尸還是另有隱情,我是刑警寧澤坛悉,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布伐厌,位于F島的核電站,受9級(jí)特大地震影響裸影,放射性物質(zhì)發(fā)生泄漏挣轨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一轩猩、第九天 我趴在偏房一處隱蔽的房頂上張望卷扮。 院中可真熱鬧,春花似錦均践、人聲如沸晤锹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鞭铆。三九已至,卻和暖如春焦影,著一層夾襖步出監(jiān)牢的瞬間车遂,已是汗流浹背封断。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艰额,地道東北人澄港。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像柄沮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子废岂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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