【问题标题】:How to prevents users change asp.net sessionid cookie如何防止用户更改asp.net sessionid cookie
【发布时间】:2013-05-16 14:50:36
【问题描述】:

如何确定会话有效? 如果用户更改他的 aspnet sessionid cookie 并猜测另一个登录用户的 id 会发生什么?

【问题讨论】:

标签: asp.net security session cookies


【解决方案1】:

如果我正确理解了这个问题,那就是有人手动打开他们的 ASP.NET 会话 cookie,更改值,然后将其发送出去,并将更新后的值识别为其他人的会话,并以该人的身份登录。

会话 cookie 和身份验证 cookie 之间存在一些混淆。猜测登录者的会话 id 将“获取”您的会话,但除非您拥有他们的身份验证 cookie,否则您不会以他们的身份登录。

猜测或暴力破解这些值中的任何一个实际上是不可能的,会话 id c12ylm55kp3uirruo4is5sm5 或 ASP.NET 身份验证 cookie 值:

3C886BA2344099338361C921C846EAF4E02F2A88E5E7EDE6838705928F7BB7C6FF469D35FE
B1532C44B81DB38F200DEE08B6ED0E6121B945C659E932D8CE8B69FFF09E7B59DBE4820873
DBD7891DD6B6BC4A486F35A2F99849017A6C72D9C6A44517D9AFDC731B3A3C55596E797328
06F7DDDF9F

...需要an impractical amount of time 猜测 - 数万年到数十万年。

【讨论】:

  • 你有看到这个问题吗?:stackoverflow.com/questions/2448720/…
  • 是的,你已经明白我的意思了,但我认为很容易猜出这样的代码:c12ylm55kp3uirruo4is5sm5。所以,我们能做些什么?我正在寻找一种解决方案来增加更多的安全性。我正在考虑检查用户 ip/代理 ip 并要求插入密码,如果相同的令牌与 onhoter ip 相关联,但对于那些没有静态 ip 的用户来说,这很乏味
  • 例如。我可以进行蛮力攻击:我可以生成随机 cookie 会话 ID,然后我可以向服务器发出 Web 请求并检查响应是否包含“欢迎”一词。
  • @Aristos - 我没有看到这个问题,但这个问题是关于经过身份验证的用户,所以我不确定它是否适用? user2236886 - 我已经更新了我的答案。
  • @SteveWilkes 问题是在某些情况下cookie是相同的。而且还有偷cookie的情况——不管怎么做,但他可以。 (会话 cookie,而不是身份验证 cookie)现在在您的回答中,您将身份验证 cookie 与会话 cookie 混合在一起 - 不一样!
【解决方案2】:

我们需要讨论两个 cookie。

  1. 是与会话连接的cookie
  2. 是持有身份验证的 cookie。

不一样,这里的问题是如何防止有人窃取身份验证 - Can some hacker steal the cookie from a user and login with that name on a web site?

对我来说最重要的是。

  1. 需要 SSL 来存储身份验证 cookie
  2. 当用户注销 (Base on that article) 时,为 session 设置一个标志以阻止此身份验证 cookie。最好保留the logged out authenticator cookie on a database as logged out

现在,如果您还想保护会话 cookie,您应该在所有页面上使用 SSL 页面。否则,您在会话 cookie 上保留不重要的信息。 Where and how to use the SSL

【讨论】:

    猜你喜欢
    • 2013-01-31
    • 2011-09-08
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 2011-01-24
    • 2010-10-10
    相关资源
    最近更新 更多