Asp.net 使用会话变量实现安全性,它是如何不安全的

Asp.net 使用会话变量实现安全性,它是如何不安全的,asp.net,web-applications,webforms,Asp.net,Web Applications,Webforms,我在dotnet上做基于web的项目。目前,我正在使用会话变量实现安全性。我在会话中保留当前用户id和用户类型,并通过这些会话变量(比如会话[“UserId”]、会话[“UserName”]和会话[“UserType”])对用户进行身份验证 请帮助我理解这是如何不安全的。我听说这样的安全性会被破坏,应用程序也会很容易被入侵,比如可以获取会话id并直接连接到会话id等等 请给我一些指导。在后台,标准ASP.NET表单身份验证的工作原理与您描述的基本相同。这种不安全感主要来自这样一个事实,即您实际上

我在dotnet上做基于web的项目。目前,我正在使用会话变量实现安全性。我在会话中保留当前用户id和用户类型,并通过这些会话变量(比如会话[“UserId”]、会话[“UserName”]和会话[“UserType”])对用户进行身份验证

请帮助我理解这是如何不安全的。我听说这样的安全性会被破坏,应用程序也会很容易被入侵,比如可以获取会话id并直接连接到会话id等等


请给我一些指导。

在后台,标准ASP.NET表单身份验证的工作原理与您描述的基本相同。这种不安全感主要来自这样一个事实,即您实际上是在告诉ASP.NET“嘿,别担心……我会处理好的。”通过接管安全问题,您正在部署吊死自己的绳索(*)。微软已经在ASP.NET框架上投入了多年的人力,它有一个相当健壮的内置安全系统。你应该用它

亚里士多德找错人了。。。如果有人可以从你的用户/站点窃取“一个简单的cookie”,那么他们也可以破坏ASP.NET的默认安全模型。虽然这确实是一个问题,但这并不是真正的问题


*例如,假设您创建了一个名为MySecurePage的“安全”页面对象,该对象在执行代码之前始终检查用户是否已登录和验证。有一天,开发人员Joe忘记了使用MySecurePage,而是使用了Page。哎呀,你刚刚删除了这个页面上的所有安全性。这是一个简单的例子,但希望您能了解有多少种不同的方法可以使事情变得糟糕。

首先我开始键入一些信息,然后我意识到我不想给出一些想法,说明一些人如何入侵您的网站。如果你认为你是网站的开发者,你无法理解为什么有人会偷走一个简单的cookie,那么你只需要花点时间,但首先要遵循安全准则,然后几年后,你可能会明白为什么要遵循这些准则。目前,我们没有理由知道:),只需跟随他们。搜索“cookie欺骗”、“cookie注入”…Aristos告诉我我正在使用asp.net 3.5会话ID如何被盗?:)