Session变量(在ASP.NET中)是存储与用户是否登录相关的数据的最安全方式吗?即Session["LoggedIn"] = 'No'
我知道会话变量可以被欺骗,所以我认为必须有一种更安全的方式。
ASP.NET的任何想法?
谢谢!
答案 0 :(得分:2)
我从来没有听说过能够在ASP.Net(或我所知道的任何其他平台)中欺骗会话变量。
你可以欺骗Form Variables,这是你在想什么?
答案 1 :(得分:1)
会话变量应该是安全的。另一方面,饼干,没有。
答案 2 :(得分:1)
会话是安全的,因为它们在服务器上运行。因此,直接掌握它们是相当困难的。然而,这并不是说它们是完全安全的(但是它是什么?)。黑客仍然可以通过劫持其他会话来欺骗其他人。这称为会话劫持。您可以获得有关如何降低其可能性的信息here
它们是最安全的数据存储方式之一,因此您应该使用它们。但是不要忘记,如果您使用默认的in-proc
方法,会话将存储在内存中。如果您持有太多数据,您的内存将被快速消耗。对于大量数据,请考虑将会话存储在数据库或外部会话专用服务器中。
答案 3 :(得分:1)
答案 4 :(得分:0)
@ V-Man你只有几个选择,你的解决方案是无状态的。一个是会话,只要你没有创建一个没有分布在多个Web服务器上的庞大的基于Web的系统,那么会话变量是你最好的选择。另外做的就是缓存结果。
答案 5 :(得分:0)
会话很好用,但请记住,如果你去多个服务器,它可能会成为问题。
通常,您可以通过检查以下内容来判断是否有人登录,假设您使用的表单或Windows身份验证:
HttpContext.Current.User
我还在sessin中为我可能需要经常访问的用户存储了扩展信息,例如他们的个人资料可能包含全名,电子邮件,访问级别等内容...