代码之家  ›  专栏  ›  技术社区  ›  Starx

存储登录信息的最佳实践

  •  3
  • Starx  · 技术社区  · 15 年前

    你们怎么存储登录信息?

    可能,在会话中存储记录的状态。和cookies的用户名。但是,保护这些关键信息不落入坏人手中最安全的做法是什么呢。

    4 回复  |  直到 15 年前
        1
  •  2
  •   Gumbo    15 年前

    如果将用户名用作标识,请不要将其存储在cookie中。因为cookies是客户端存储,可以被操作。将其存储在会话中,而不是服务器端存储。

    通常,当身份验证成功时,您将用户标识信息存储在会话中,并且只将会话ID传递给客户端。这样,用户信息在服务器端就得到了保护。

        2
  •  0
  •   Emil Vikström    15 年前

    将用户名也存储在会话变量中。会话存储在服务器上,cookie中只有一个标识号。

        3
  •  0
  •   Nev Stokes    15 年前

    如果要存储登录信息,则需要采取措施避免会话劫持。将会话id与users IP和browser useragent字符串等内容一起存储在数据库中,并检查每次的内容是否匹配。

    如果你也在存储密码,那么看看 hashing 他们首先-通常有一些基本的混淆,如盐渍他们首先避免彩虹表攻击。

        4
  •  0
  •   Tgr    15 年前

    将用户ID存储在会话变量中;如果需要缓存权限级别之类的内容,也可以将其存储在那里。将会话ID存储在cookie中;使用 HttpOnly Strict-Transport-Security header,很快就可以在Firefox中使用)。否则,最好至少通过SSL发送登录信息。(不幸的是,SSL需要来自主流浏览器信任的提供者的证书,这可能很昂贵。)确保在登录时启动新会话以防止 session fixation .

    使用咸杂凑来存储密码;最好是像 Blowfish