【问题标题】:Cookies vs Sessions for a secure "Remember me" functionality用于安全“记住我”功能的 Cookie 与会话
【发布时间】:2012-12-04 19:09:52
【问题描述】:

我在这个地方使用一台计算机作为应用程序的网络专用服务器。 (因此不会共享会话)

我想开发一个安全的记住我功能,我想知道哪种方法最好:

  • 会话
  • Cookie

使用 cookie 我必须加密用户密码、创建一些盐并在数据库中添加一些字段。 (详见herehere

在这种情况下使用会话将它们配置为持续更长时间不是更简单吗?

谢谢。

【问题讨论】:

  • 如果会话不共享,可能会导致错误甚至导致安全风险...从技术上讲,黑客可以获得当前所有用户的凭据。
  • 因此会话不安全吗?黑客可以访问它们吗?
  • @Steve 如果记住我令牌保存在 cookie 中,那么威胁模型与会话 cookie 相同。但!会话在服务器端持有内存,并为攻击者提供上下文,这并不好。记住我,令牌强制执行重新身份验证(这可以更改令牌值以提高安全性),而且您可以跟踪用户重新身份验证。而且我认为将用户会话存储两周并不是最好的应用程序配置决定:) 攻击者可以很容易地拒绝你的服务器:)

标签: session web-applications cookies security session-cookies


【解决方案1】:

Cookie。

您需要在客户端上存储一些状态。 “记住我”的想法是,在没有会话的情况下返回同一个站点仍然会让您重新登录,而没有建立有效的会话。

Cookie 允许您存储状态。可以有其他方法,但绝对不是会话。

【讨论】:

    【解决方案2】:

    Cookie 与会话

    会话的优点:

    1. 会话可能更容易配置。
    2. 会话适用于少数非常受信任的用户
    3. Cookie 和会话具有相同的威胁模型。如果黑客可以解密 cookie,他就可以解密会话

    缺点

    1. 如果您的服务器受到攻击,攻击者将获得上下文。即一大堆令牌,他可以通过这些令牌解密数据

    会话在服务器端保存内存。当浏览器关闭时,会话 cookie 也会过期。虽然这可以重新配置(如果你真的很努力的话)。您基本上最终会在一个稍微新的头像中重新创建 cookie。

    毫无疑问,“记住我”的所有 Cookie VS 会话。

    【讨论】:

      猜你喜欢
      • 2011-01-13
      • 2017-08-10
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 2013-04-09
      • 1970-01-01
      • 2014-07-24
      相关资源
      最近更新 更多