2016-08-02 50 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理解为什么你应该选择在会员身份)