【问题标题】:Should I populate a session variable from a cookie?我应该从 cookie 中填充会话变量吗?
【发布时间】:2015-02-01 03:09:20
【问题描述】:

我有一个带有登录功能的网站,以及“记住我”选项。在我的用户表中,我有一个 128 位的随机令牌,我将其放入 cookie 中,然后用于查找用户。

我将使用“LoggedInUser”,它是我的“用户”类的一个实例,它将填充数据库查找,因此我可以检索用户的用户名、ID 和其他信息。现在假设用户有一个 cookie,我应该简单地使用 cookie 值执行用户查找,还是应该将令牌存储在会话中并使用它执行查找?这里主要担心的是安全和性能,IE哪个更安全,哪个加载时间更短?

【问题讨论】:

  • 不要重新发明身份验证系统。使用身份。

标签: c# asp.net-mvc session cookies


【解决方案1】:

Session Id 通常存储在 cookie 中 - 因此无论您是自己将 ID 存储在 cookie 中还是使用 SessionState cookie,几乎没有安全差异。

性能相同 - 主要成本将在数据库查找中进行,显然如果您执行几个额外步骤(从会话状态添加/红色),它会(可能无法测量)更快。

注意事项:

  • 会话状态生成的“随机”经过大量安全审查,希望您的也一样好。
  • 默认情况下,会话状态 cookie 未标记为“安全”,因此也会通过 HTTP 发送,显然您的不会 - 所以自定义 cookie 会更好一些。
  • 会话状态可以配置为无cookie,在您的情况下,您的方案有点安全(因为您不会错误地共享cookie,但网址很容易共享)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-10
    • 2013-02-07
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多