亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际

17站長網(wǎng)

17站長網(wǎng) 首頁 安全 安全教程 查看內(nèi)容

防止CSRF攻擊ASP.NET應(yīng)用

2022-9-23 20:52| 查看: 1838 |來源: 互聯(lián)網(wǎng)

CSRF是什么?   CSRF(Cross-site request forgery),中文名稱:跨站請(qǐng)求偽造,也被稱為:one click attack/session riding,縮寫為:CSRF/XSRF。CSRF(Cros ...

CSRF是什么?

  CSRF(Cross-site request forgery),中文名稱:跨站請(qǐng)求偽造,也被稱為:one click attack/session riding,縮寫為:CSRF/XSRF。CSRF(Cross Site Request Forgery, 跨站域請(qǐng)求偽造)是一種網(wǎng)絡(luò)的攻擊方式,它在 2007 年曾被列為互聯(lián)網(wǎng) 20 大安全隱患之一。其他安全隱患,比如 SQL 腳本注入,跨站域腳本攻擊等在近年來已經(jīng)逐漸為眾人熟知,很多網(wǎng)站也都針對(duì)他們進(jìn)行了防御。然而,對(duì)于大多數(shù)人來說,CSRF 卻依然是一個(gè)陌生的概念。即便是大名鼎鼎的 Gmail, 在 2007 年底也存在著 CSRF 漏洞,從而被黑客攻擊而使 Gmail 的用戶造成巨大的損失。

CSRF可以做什么?

  你這可以這么理解CSRF攻擊:攻擊者盜用了你的身份,以你的名義發(fā)送惡意請(qǐng)求。CSRF能夠做的事情包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號(hào),甚至于購買商品,虛擬貨幣轉(zhuǎn)賬......造成的問題包括:個(gè)人隱私泄露以及財(cái)產(chǎn)安全。

CSRF攻擊原理

從上圖可以看出,要完成一次CSRF攻擊,受害者必須依次完成兩個(gè)步驟:

  1.登錄受信任網(wǎng)站A,并在本地生成Cookie。

  2.在不登出A的情況下,訪問危險(xiǎn)網(wǎng)站B。

  看到這里,你也許會(huì)說:“如果我不滿足以上兩個(gè)條件中的一個(gè),我就不會(huì)受到CSRF的攻擊”。是的,確實(shí)如此,但你不能保證以下情況不會(huì)發(fā)生:

  1.你不能保證你登錄了一個(gè)網(wǎng)站后,不再打開一個(gè)tab頁面并訪問另外的網(wǎng)站。

  2.你不能保證你關(guān)閉瀏覽器了后,你本地的Cookie立刻過期,你上次的會(huì)話已經(jīng)結(jié)束。(事實(shí)上,關(guān)閉瀏覽器不能結(jié)束一個(gè)會(huì)話,但大多數(shù)人都會(huì)錯(cuò)誤的認(rèn)為關(guān)閉瀏覽器就等于退出登錄/結(jié)束會(huì)話了......)

  3.上圖中所謂的攻擊網(wǎng)站,可能是一個(gè)存在其他漏洞的可信任的經(jīng)常被人訪問的網(wǎng)站。

上面大概地講了一下CSRF攻擊的思想,下面我將用個(gè)例子詳細(xì)說說具體的CSRF攻擊,這里我以一個(gè)銀行轉(zhuǎn)賬的操作作為例子(僅僅是例子,真實(shí)的銀行網(wǎng)站沒這么傻:>)

  銀行網(wǎng)站A,它以GET請(qǐng)求來完成銀行轉(zhuǎn)賬的操作,如:http://www.mybank.com/Transfer.php?toBankId=11&money=1000

  危險(xiǎn)網(wǎng)站B,它里面有一段HTML的代碼如下:

<img src=http://www.mybank.com/Transfer.php?toBankId=11&money=1000>

  首先,你登錄了銀行網(wǎng)站A,然后訪問危險(xiǎn)網(wǎng)站B,噢,這時(shí)你會(huì)發(fā)現(xiàn)你的銀行賬戶少了1000塊......

  為什么會(huì)這樣呢?原因是銀行網(wǎng)站A違反了HTTP規(guī)范,使用GET請(qǐng)求更新資源。在訪問危險(xiǎn)網(wǎng)站B的之前,你已經(jīng)登錄了銀行網(wǎng)站A,而B中的以GET的方式請(qǐng)求第三方資源(這里的第三方就是指銀行網(wǎng)站了,原本這是一個(gè)合法的請(qǐng)求,但這里被不法分子利用了),所以你的瀏覽器會(huì)帶上你的銀行網(wǎng)站A的Cookie發(fā)出Get請(qǐng)求,去獲取資源“http://www.mybank.com/Transfer.php?toBankId=11&money=1000”,結(jié)果銀行網(wǎng)站服務(wù)器收到請(qǐng)求后,認(rèn)為這是一個(gè)更新資源操作(轉(zhuǎn)賬操作),所以就立刻進(jìn)行轉(zhuǎn)賬操作......

當(dāng)前防御 CSRF 的幾種策略

在業(yè)界目前防御 CSRF 攻擊主要有三種策略:驗(yàn)證 HTTP Referer 字段;在請(qǐng)求地址中添加 token 并驗(yàn)證;在 HTTP 頭中自定義屬性并驗(yàn)證。下面就分別對(duì)這三種策略進(jìn)行詳細(xì)介紹。

驗(yàn)證 HTTP Referer 字段

根據(jù) HTTP 協(xié)議,在 HTTP 頭中有一個(gè)字段叫 Referer,它記錄了該 HTTP 請(qǐng)求的來源地址。在通常情況下,訪問一個(gè)安全受限頁面的請(qǐng)求來自于同一個(gè)網(wǎng)站,比如需要訪問 http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory,用戶必須先登陸 bank.example,然后通過點(diǎn)擊頁面上的按鈕來觸發(fā)轉(zhuǎn)賬事件。這時(shí),該轉(zhuǎn)帳請(qǐng)求的 Referer 值就會(huì)是轉(zhuǎn)賬按鈕所在的頁面的 URL,通常是以 bank.example 域名開頭的地址。而如果黑客要對(duì)銀行網(wǎng)站實(shí)施 CSRF 攻擊,他只能在他自己的網(wǎng)站構(gòu)造請(qǐng)求,當(dāng)用戶通過黑客的網(wǎng)站發(fā)送請(qǐng)求到銀行時(shí),該請(qǐng)求的 Referer 是指向黑客自己的網(wǎng)站。因此,要防御 CSRF 攻擊,銀行網(wǎng)站只需要對(duì)于每一個(gè)轉(zhuǎn)賬請(qǐng)求驗(yàn)證其 Referer 值,如果是以 bank.example 開頭的域名,則說明該請(qǐng)求是來自銀行網(wǎng)站自己的請(qǐng)求,是合法的。如果 Referer 是其他網(wǎng)站的話,則有可能是黑客的 CSRF 攻擊,拒絕該請(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 攻擊。

即便是使用最新的瀏覽器,黑客無法篡改 Referer 值,這種方法仍然有問題。因?yàn)?Referer 值會(huì)記錄下用戶的訪問來源,有些用戶認(rèn)為這樣會(huì)侵犯到他們自己的隱私權(quán),特別是有些組織擔(dān)心 Referer 值會(huì)把組織內(nèi)網(wǎng)中的某些信息泄露到外網(wǎng)中。因此,用戶自己可以設(shè)置瀏覽器使其在發(fā)送請(qǐng)求時(shí)不再提供 Referer。當(dāng)他們正常訪問銀行網(wǎng)站時(shí),網(wǎng)站會(huì)因?yàn)檎?qǐng)求沒有 Referer 值而認(rèn)為是 CSRF 攻擊,拒絕合法用戶的訪問。

在請(qǐng)求地址中添加 token 并驗(yàn)證

CSRF 攻擊之所以能夠成功,是因?yàn)楹诳涂梢酝耆珎卧煊脩舻恼?qǐng)求,該請(qǐng)求中所有的用戶驗(yàn)證信息都是存在于 cookie 中,因此黑客可以在不知道這些驗(yàn)證信息的情況下直接利用用戶自己的 cookie 來通過安全驗(yàn)證。要抵御 CSRF,關(guān)鍵在于在請(qǐng)求中放入黑客所不能偽造的信息,并且該信息不存在于 cookie 之中。可以在 HTTP 請(qǐng)求中以參數(shù)的形式加入一個(gè)隨機(jī)產(chǎn)生的 token,并在服務(wù)器端建立一個(gè)攔截器來驗(yàn)證這個(gè) token,如果請(qǐng)求中沒有 token 或者 token 內(nèi)容不正確,則認(rèn)為可能是 CSRF 攻擊而拒絕該請(qǐng)求。

這種方法要比檢查 Referer 要安全一些,token 可以在用戶登陸后產(chǎn)生并放于 session 之中,然后在每次請(qǐng)求時(shí)把 token 從 session 中拿出,與請(qǐng)求中的 token 進(jìn)行比對(duì),但這種方法的難點(diǎn)在于如何把 token 以參數(shù)的形式加入請(qǐng)求。對(duì)于 GET 請(qǐng)求,token 將附在請(qǐng)求地址之后,這樣 URL 就變成 http://url?csrftoken=tokenvalue。 而對(duì)于 POST 請(qǐng)求來說,要在 form 的最后加上

<input type=”hidden” name=”csrftoken” value=”tokenvalue”/>

,這樣就把 token 以參數(shù)的形式加入請(qǐng)求了。但是,在一個(gè)網(wǎng)站中,可以接受請(qǐng)求的地方非常多,要對(duì)于每一個(gè)請(qǐng)求都加上 token 是很麻煩的,并且很容易漏掉,通常使用的方法就是在每次頁面加載時(shí),使用 javascript 遍歷整個(gè) dom 樹,對(duì)于 dom 中所有的 a 和 form 標(biāo)簽后加入 token。這樣可以解決大部分的請(qǐng)求,但是對(duì)于在頁面加載之后動(dòng)態(tài)生成的 html 代碼,這種方法就沒有作用,還需要程序員在編碼時(shí)手動(dòng)添加 token。

該方法還有一個(gè)缺點(diǎn)是難以保證 token 本身的安全。特別是在一些論壇之類支持用戶自己發(fā)表內(nèi)容的網(wǎng)站,黑客可以在上面發(fā)布自己個(gè)人網(wǎng)站的地址。由于系統(tǒng)也會(huì)在這個(gè)地址后面加上 token,黑客可以在自己的網(wǎng)站上得到這個(gè) token,并馬上就可以發(fā)動(dòng) CSRF 攻擊。為了避免這一點(diǎn),系統(tǒng)可以在添加 token 的時(shí)候增加一個(gè)判斷,如果這個(gè)鏈接是鏈到自己本站的,就在后面添加 token,如果是通向外網(wǎng)則不加。不過,即使這個(gè) csrftoken 不以參數(shù)的形式附加在請(qǐng)求之中,黑客的網(wǎng)站也同樣可以通過 Referer 來得到這個(gè) token 值以發(fā)動(dòng) CSRF 攻擊。這也是一些用戶喜歡手動(dòng)關(guān)閉瀏覽器 Referer 功能的原因。

在 HTTP 頭中自定義屬性并驗(yàn)證

這種方法也是使用 token 并進(jìn)行驗(yàn)證,和上一種方法不同的是,這里并不是把 token 以參數(shù)的形式置于 HTTP 請(qǐng)求之中,而是把它放到 HTTP 頭中自定義的屬性里。通過 XMLHttpRequest 這個(gè)類,可以一次性給所有該類請(qǐng)求加上 csrftoken 這個(gè) HTTP 頭屬性,并把 token 值放入其中。這樣解決了上種方法在請(qǐng)求中加入 token 的不便,同時(shí),通過 XMLHttpRequest 請(qǐng)求的地址不會(huì)被記錄到瀏覽器的地址欄,也不用擔(dān)心 token 會(huì)透過 Referer 泄露到其他網(wǎng)站中去。

然而這種方法的局限性非常大。XMLHttpRequest 請(qǐng)求通常用于 Ajax 方法中對(duì)于頁面局部的異步刷新,并非所有的請(qǐng)求都適合用這個(gè)類來發(fā)起,而且通過該類請(qǐng)求得到的頁面不能被瀏覽器所記錄下,從而進(jìn)行前進(jìn),后退,刷新,收藏等操作,給用戶帶來不便。另外,對(duì)于沒有進(jìn)行 CSRF 防護(hù)的遺留系統(tǒng)來說,要采用這種方法來進(jìn)行防護(hù),要把所有請(qǐng)求都改為 XMLHttpRequest 請(qǐng)求,這樣幾乎是要重寫整個(gè)網(wǎng)站,這代價(jià)無疑是不能接受的。

CSRF的防御

  我總結(jié)了一下看到的資料,CSRF的防御可以從服務(wù)端和客戶端兩方面著手,防御效果是從服務(wù)端著手效果比較好,現(xiàn)在一般的CSRF防御也都在服務(wù)端進(jìn)行。這里給大家介紹一個(gè)開源項(xiàng)目,具體的內(nèi)容可以參考作者的博客《Protecting ASP.NET Applications Against CSRF Attacks》。

1、通過Nuget 安裝ARMOR Web Framework

PM> Install-Package Daishi.Armor.WebFramework

2、添加幾個(gè)配置項(xiàng)

<add key=“IsArmed” value=“true” />   
  
<add key=“ArmorEncryptionKey” value=“{Encryption Key}” />   
  
<add key=“ArmorHashKey” value=“{Hashing Key}” />   
  
<add key=“ArmorTimeout” value=“1200000” />

IsArmed: 打開或者關(guān)閉ARMOR 功能開關(guān)

ArmorEncryptionKey:ARMOR 的加密密鑰,用于加密和解密Token

ArmorHashKey:用于生成和驗(yàn)證ARMOR 哈希值,包含在令牌內(nèi)。ARMOR 用這個(gè)實(shí)現(xiàn)是否token被篡改過。

ArmorTimeout:以毫秒為單位的ARMOR 的token有效期

可以用下面的這段代碼去生成

byte[] encryptionKey = new byte[32];   
  
byte[] hashingKey = new byte[32];   
  
using (var provider = new RNGCryptoServiceProvider()) {   
  
provider.GetBytes(encryptionKey);   
  
provider.GetBytes(hashingKey);

3、應(yīng)用程序中加入 一個(gè)ARMOR 鉤子

以上就是防止CSRF攻擊ASP.NET 應(yīng)用的方法,希望大家喜歡。

tag標(biāo)簽:CSRF CSRF攻擊
本文最后更新于 2022-9-23 20:52,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長:17tui@17tui.com
·END·
站長網(wǎng)微信號(hào):w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际
        视频在线观看一区二区三区| 99re这里只有精品首页| 欧美激情综合在线| 国产欧美日韩在线看| 亚洲国产精品成人综合色在线婷婷| 成人免费视频视频| 久久99精品久久久久| 中文无字幕一区二区三区 | 成人性色生活片| 日本精品一区二区三区高清| 色综合天天视频在线观看| 波波电影院一区二区三区| 99久久婷婷国产综合精品电影| 久久99久久精品| 欧美成人精精品一区二区频| 日韩女优电影在线观看| 成人精品高清在线| 日本伊人色综合网| 一区二区三区免费网站| 国产福利一区二区三区视频| 在线免费观看不卡av| 国产日产精品一区| 麻豆精品久久久| 欧美蜜桃一区二区三区| 成人免费视频国产在线观看| 91精品福利在线一区二区三区| 色综合久久88色综合天天免费| 成人午夜视频在线| 日日骚欧美日韩| 三级不卡在线观看| 国产日韩欧美高清在线| 国产美女视频91| 日韩免费高清视频| 日本va欧美va瓶| 国产女同互慰高潮91漫画| 久久激情五月婷婷| 久久精品欧美一区二区三区麻豆| 欧美精品丝袜中出| 亚洲欧美成aⅴ人在线观看| 天天色图综合网| 全国精品久久少妇| 麻豆国产91在线播放| 99久久99久久精品国产片果冻| 中文字幕欧美日韩一区| 99精品热视频| 欧美丝袜自拍制服另类| 欧美一区二区黄| 东方欧美亚洲色图在线| 亚洲成人精品影院| 亚洲午夜视频在线| 日本欧洲一区二区| 国产精品一二三区| 7799精品视频| 91丨porny丨最新| 午夜欧美2019年伦理| 国产福利精品一区二区| 亚洲国产日日夜夜| 国产日产欧美一区二区视频| 精品久久久久久综合日本欧美| 国产欧美精品一区二区色综合朱莉| 亚洲va国产va欧美va观看| 777精品伊人久久久久大香线蕉| 欧美日韩aaaaaa| 精品视频在线免费看| 日韩中文字幕区一区有砖一区 | 精品久久久久久久人人人人传媒 | 国产盗摄视频一区二区三区| 欧美电影一区二区| 一级精品视频在线观看宜春院 | 色婷婷精品大在线视频| 激情综合网天天干| 午夜亚洲国产au精品一区二区| 91麻豆精品国产自产在线观看一区 | 欧美裸体一区二区三区| 亚洲国产va精品久久久不卡综合| 日韩一区二区三区精品视频| 看片网站欧美日韩| 国产又粗又猛又爽又黄91精品| 精品国产一二三区| 国产欧美一区二区精品性色超碰 | 97久久精品人人澡人人爽| 日韩国产精品久久久| 美女被吸乳得到大胸91| 亚洲va天堂va国产va久| 99久久国产综合精品女不卡| 亚洲国产欧美一区二区三区丁香婷| 欧美日韩视频在线第一区| 成人午夜电影久久影院| 麻豆精品在线看| 欧美日韩激情在线| 一区二区三区.www| av成人动漫在线观看| 色香蕉成人二区免费| 日韩一区二区三区在线观看| 91麻豆精品国产自产在线| 午夜影视日本亚洲欧洲精品| 成人手机电影网| ww亚洲ww在线观看国产| 亚洲欧美成aⅴ人在线观看| 日韩视频一区二区三区在线播放| 精品少妇一区二区三区日产乱码 | 国产精品一区二区三区网站| 91久久线看在观草草青青| 久久蜜桃香蕉精品一区二区三区| 日韩国产一二三区| 欧美激情一区二区在线| 久久久久久久久久久黄色| 亚洲成人av一区二区三区| 色综合夜色一区| 亚洲第一福利视频在线| 日韩一级大片在线观看| 蜜桃视频在线一区| 国产日韩欧美精品电影三级在线| 亚洲欧美一区二区三区孕妇| 国产在线精品一区二区| jiyouzz国产精品久久| 日韩午夜中文字幕| 亚洲专区一二三| 成人免费视频播放| 制服丝袜在线91| 日韩视频一区二区三区在线播放| 国产午夜亚洲精品不卡 | 国产欧美日韩一区二区三区在线观看 | 国产在线精品一区二区三区不卡| 欧美大片一区二区三区| 国产精品一二三| 精品国产免费人成在线观看| 91免费版pro下载短视频| 国产美女精品一区二区三区| 日日夜夜精品视频免费| 日本欧美肥老太交大片| 国产精品一二三区在线| 久久这里只有精品首页| 一区二区三区日韩欧美精品| 亚洲同性gay激情无套| 亚洲一级二级三级在线免费观看| 欧美一三区三区四区免费在线看| 日韩中文字幕亚洲一区二区va在线| 国产精品免费久久| 免费在线观看一区二区三区| 日韩中文字幕91| 欧美精品一区二区三区蜜桃视频| 色88888久久久久久影院野外 | 91麻豆精品国产无毒不卡在线观看| 一区二区免费在线| 91精品国产入口| 中文字幕佐山爱一区二区免费| 国产拍揄自揄精品视频麻豆| 欧美挠脚心视频网站| 国产成人精品在线看| 亚洲444eee在线观看| 亚洲免费在线视频一区 二区| 欧美一区二区性放荡片| 国产精品久线在线观看| 国产婷婷色一区二区三区| 久久久av毛片精品| 日韩精品一区二区三区swag| 国产视频一区二区在线| 亚洲同性同志一二三专区| 精品成人免费观看| 六月丁香婷婷久久| 青青草97国产精品免费观看无弹窗版| 88在线观看91蜜桃国自产| 美女视频免费一区| 成人一区二区视频| 久久精品国产网站| 久久99九九99精品| 免费看日韩a级影片| 亚洲综合久久久| 26uuu另类欧美亚洲曰本| 337p日本欧洲亚洲大胆色噜噜| 91麻豆精品国产91久久久久久| 中文字幕中文字幕中文字幕亚洲无线| 国产麻豆视频精品| 国产一区二区不卡| www.日韩av| 精品视频1区2区| 国产精品国产成人国产三级 | 亚洲欧美日韩在线| 337p日本欧洲亚洲大胆精品 | 亚洲成人动漫在线观看| 精品国产第一区二区三区观看体验 | 欧美视频在线一区二区三区| 亚洲麻豆国产自偷在线| 欧美影视一区二区三区| 欧美亚洲尤物久久| 亚洲午夜久久久久中文字幕久| 国产高清精品久久久久| 美女免费视频一区| 91黄色激情网站| 久久婷婷国产综合国色天香 | 色素色在线综合| 欧美大片一区二区| 在线观看不卡一区| 91精品麻豆日日躁夜夜躁| 一区二区三区高清| 欧美一区二区三区喷汁尤物| 色噜噜偷拍精品综合在线| 亚洲成在线观看| 91蜜桃婷婷狠狠久久综合9色|