自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET中無Cookie會話的優(yōu)點與缺點

開發(fā) 后端
本文總結(jié)了無Cookie會話的優(yōu)點與缺點。一個經(jīng)常提出的反對 Cookie 的理由是安全性。這是一個值得予以更多關(guān)注的要點。

無Cookie會話的優(yōu)點

在 ASP.NET 中,會話管理和表單身份驗證是唯一的兩個在后臺使用 Cookie 的系統(tǒng)功能。通過無 Cookie 會話,您現(xiàn)在可以部署無論用戶的有關(guān) Cookie 的首選項如何都能正常工作的有狀態(tài)應(yīng)用程序。然而,就 ASP.NET 1.x 而言,仍然需要使用 Cookie 來實現(xiàn)表單身份驗證。好消息是,在 ASP.NET 2.0 中,表單身份驗證可以選擇以無 Cookie 方式工作。

另一個經(jīng)常提出的反對 Cookie 的理由是安全性。這是一個值得予以更多關(guān)注的要點。

Cookies 是無活動能力的文本文件,因此,這些文件可能被攻擊者替換或損壞 — 只要他們獲得了對計算機(jī)的訪問。真正的威脅并不在于 Cookie 可以在客戶端計算機(jī)上安裝什么,而是在于它們可以向目標(biāo)站點上載什么。Cookie 不是程序,并且永遠(yuǎn)不會像程序那樣運(yùn)行;然而,您計算機(jī)上安裝的其他軟件可以使用對 Cookie 的瀏覽器內(nèi)置支持來遠(yuǎn)程從事破壞活動。

此外,Cookie 要受到被盜竊的風(fēng)險。一旦失竊,包含有價值的和私人的信息的 Cookie 就可能將其內(nèi)容泄露給惡意攻擊者,并且為其他類型的 Web 攻擊提供便利??傊?,通過使用 Cookie,您將自己暴露在本可以消除的風(fēng)險之中。這是真的嗎?

無Cookie會話的缺點

讓我們從另一個角度來考察安全性。您是否曾經(jīng)聽說過會話劫持?如果沒有,則請閱讀一下 TechNet Magazine 文章 Theft On The Web: Prevent Session Hijacking。簡單說來,當(dāng)攻擊者獲得對特定用戶的會話狀態(tài)的訪問時,將發(fā)生會話劫持。其實質(zhì)是,攻擊者竊取有效的會話 ID,并且使用它侵入系統(tǒng)和窺探數(shù)據(jù)。獲取有效會話 ID 的一種常見方式是竊取有效的會話 Cookie。鑒于此,如果您認(rèn)為無 Cookie 會話保護(hù)了您應(yīng)用程序的安全,那您就完全錯了。實際上,對于無 Cookie 會話,會話 ID 直接顯示在地址欄中!請嘗試下列操作:

連接到使用無Cookie會話的 Web 站點(例如,MapPoint)并獲得一個映射。此時,該地址存儲在會話狀態(tài)中。

◆抓取 URL(直至頁名稱)。不要包括查詢字符串,但請確保該 URL 包括會話 ID。

◆將該 URL 保存到文件中,并將該文件復(fù)制/發(fā)送到另一臺計算機(jī)。

◆在第二臺計算機(jī)上打開該文件,并將該 URL 粘貼到新瀏覽器實例中。

◆只要會話超時仍然有效,就會顯示同一個映射。

◆通過無Cookie會話,可以比以往任何時候都更加容易地竊取會話 ID。

從道德的觀點來看,竊取會話是應(yīng)該受到譴責(zé)的操作,我相信大家會一致認(rèn)同這一點。但它是否也是有害的?這取決于會話狀態(tài)中實際存儲的內(nèi)容。竊取會話 ID 本身并不會執(zhí)行超出代碼控制范圍的操作。但是,它可能向未經(jīng)授權(quán)的用戶泄露私有數(shù)據(jù),并且使一些壞家伙能夠執(zhí)行未經(jīng)授權(quán)的操作。有關(guān)如何在 ASP.NET 應(yīng)用程序中阻止會話劫持的提示,請閱讀 Wicked Code: Foiling Session Hijacking Attempts。(而且,它并不依賴于無 Cookie 會話?。?

使用無Cookie會話還會引起與鏈接有關(guān)的問題。例如,您不能在 ASP.NET 頁中具有絕對的、完全限定的鏈接。如果您這樣做,那么源自該超鏈接的每個請求都將被視為新會話的一部分。無 Cookie 會話要求您總是使用相對 URL,就像在 ASP.NET 回發(fā)中一樣。僅當(dāng)您可以將會話 ID 嵌入到 URL 中時,您才可以使用完全限定的 URL。但是,既然會話 ID 是在運(yùn)行時生成的,那么您如何才能做到這一點呢?

下面的代碼中斷了該會話:

  1. < a runat="server" href="/test/page.aspx">Click< /a> 

要使用絕對 URL,可以借助于一個小技巧,即,使用 HttpResponse 類上的 ApplyAppPathModifier 方法:

  1. < a runat="server" href=< % =Response.ApplyAppPathModifier("/test/page.aspx")%> >Click< /a>   

ApplyAppPathModifier 方法采用一個表示 URL 的字符串作為參數(shù),并且返回一個嵌入了會話信息的絕對 URL。例如,當(dāng)您需要從 HTTP 頁重定向到 HTTPS 頁時,該技巧尤其有用。最后,請?zhí)貏e注意,每當(dāng)您在同一個瀏覽器內(nèi)部鍵入指向某個站點的路徑時,您都將丟失無 Cookie 會話的狀態(tài)。還要請您注意的是,對于移動應(yīng)用程序,如果設(shè)備無法處理專門格式化的 URL,則無 Cookie 會話可能會出現(xiàn)問題。

【編輯推薦】

  1. 無Cookie會話的實現(xiàn)
  2. ASP.NET Cookie:不是問題的問題
  3. .NET框架中的XML:XmlSerializer的內(nèi)部原理
  4. .NET框架中的XML基礎(chǔ)類:xsd.exe
  5. ASP.NET 2.0頁面狀態(tài)持續(xù):ViewState與控件
責(zé)任編輯:yangsai 來源: MSDN
相關(guān)推薦

2009-07-24 15:47:35

ASP.NET與ASP

2009-07-21 11:11:44

刪除CookieASP.NET

2009-08-05 15:50:13

ASP.NET優(yōu)點

2009-07-27 10:22:16

ASP.NET中Coo

2009-07-30 13:33:55

ASP.NET中的co

2009-07-24 17:04:57

ASP.NET中Coo

2009-08-06 16:02:05

無Cookie會話

2009-08-05 18:30:36

Session和CooASP.NET表單

2009-08-06 15:56:40

ASP.NET Coo

2012-04-13 10:05:24

ASP.NET

2009-07-29 17:29:46

ASP與ASP.NET

2009-07-24 10:10:22

ASP.NET

2009-07-24 16:17:42

WebRequestEASP.NET

2009-07-28 17:29:14

ASP.NET優(yōu)點

2009-07-28 12:52:50

ASP.NET coo

2009-08-24 16:46:58

什么是ASP.NET

2009-06-09 11:37:51

ViewStateViewDataASP.NET

2024-12-05 08:14:41

2009-12-02 09:07:45

ASP.NET 4.0

2009-07-30 18:51:19

瀏覽器是否接受CookASP.NET
點贊
收藏

51CTO技術(shù)棧公眾號