2016-08-02 49 views
0

我有這樣的代碼在我的登錄頁:使用會話變量有多安全? ASP.NET C#

 Session["user"] = user.Text; 
     cmd.Parameters.AddWithValue("@user", Session["user"]); 
     reader = cmd.ExecuteReader(); 

我看到這個鏈接how safe is it to use session variables - asp.net/c#

,我想知道如果我需要改變這種類型的登錄。

我的問題是,如果它的安全使用會話,如果它可能從另一個用戶竊取會話,並作爲該用戶或類似的東西進入網站。

我試圖使用會員資格,但我無法更改註冊,所以我轉移到會話。

+0

據我所知,會議變量存儲在服務器上的每個用戶,所以它是安全的,除非服務器被黑客攻擊 – lucas

+0

訪問服務器有多難? 什麼是在asp.net中創建登錄頁面的最佳受保護方式? – user6613640

+0

對服務器進行黑客攻擊不應該很容易,系統管理員的任務就是保護系統。黑客攻擊服務器可能與其最弱的安全點一樣容易。如果內部系統遭到黑客入侵,那麼公司最有可能出現比單個應用程序更大的問題。在過去,我開發了自己的定製登錄邏輯,隨着時間的推移,我發現使用開箱即用身份/身份功能更容易,更好,更安全,更快。谷歌它,你會發現許多文章,幫助你實現它 – lucas

回答

1

只要你在使用會話狀態來跟蹤當前登錄用戶是好的HTTPS。會話變量存儲在服務器內存(默認)中。

我們都在Classics ASP和ASP.Net 1.0中使用了類似的方法(在ASP.Net 2.0中成員之前)

主要缺點是維護。當應用程序頁面太多且擁有不同授權的用戶太多時,很難維護。

+0

這是正確的,我認爲https默認情況下,沒有重要的web應用程序應該通過http傳輸數據 – lucas

+0

也許用戶想知道爲什麼不保存與HTTP一起使用它:) – gsharp

0

如前所述,只要您使用https協議並且您的應用程序服務器是安全的,就不必擔心會話安全性。

但是您應該考慮使用Identity框架而不是舊的成員框架。 自2013年起的身份是新的認證.NET標準,允許單點登錄,角色提供商,基於聲明的身份驗證等..

http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity理解爲什麼你應該選擇在會員身份)