2010-05-05 55 views
2

我在做dotnet中的基於web的項目。目前我正在使用會話變量來實現安全性。我將當前用戶標識和用戶類型保留在會話中,並通過這些會話變量(例如Session [「UserId」],Session [「UserName」]和Session [「UserType」])對用戶進行身份驗證。使用會話變量實現安全性,它如何不安全

請幫我理解這可能是不安全的。我聽說過這樣的安全性被打破,應用程序可以很容易破解,喜歡的話可以獲取會話ID,並直接連接到會話ID等

請指導我在此。

+0

首先,我開始輸入一些信息,然後我意識到我不想提供一些可以破解您的網站的想法。如果你是你網站的開發者,你無法理解某個人如何偷走一個簡單的cookie,那麼你只需要你的時間,但是首先遵循安全的準則 - 然後幾年後你可以理解爲什麼你會遵循他們。暫且不知道:),只需按照他們的說法。搜索「cookie欺騙」,「cookie注入」... – Aristos 2010-05-05 07:19:30

+0

Aristos告訴我我正在使用asp.net 3.5會話ID可以被盜嗎? :) – haansi 2010-05-05 10:09:45

回答

3

標準ASP.NET Forms Authentication基本上與您所描述的方式基本相同。這種不安全感主要來自於你實際上告訴ASP.NET的事實:「嘿,別擔心......我會處理這個。」通過接管安全問題,您正在部署用來掛上自己的繩子(*)。微軟已經投入了多年的人力資源到ASP.NET框架中,並且擁有一個相當強大的內置安全系統。你應該使用它。

Aristos的是找錯了樹......如果有人可以從用戶/網站竊取「一個簡單的餅乾」,那麼他們可以打破ASP.NET的默認安全模式也。雖然這絕對是一個問題,但這不是真正的問題。

*例如,假設您創建一個「安全」的所謂Page對象MySecurePage它總是會檢查用戶登錄和執行代碼之前驗證。那麼,有一天開發人員Joe會忘記使用MySecurePage並使用Page來代替。哎呀,你剛纔elminated在這個頁面上的所有安全。這是一個簡單的例子,但希望您能夠了解有多少種不同的方式來解決這個問題。