【问题标题】:PHP: Secure way to store information into cookies?PHP:将信息存储到 cookie 中的安全方式?
【发布时间】:2012-02-24 12:38:02
【问题描述】:

我正在开发应用程序的登录系统,但我不确定应该存储哪些信息。目前,我只将用户 ID 存储到会话变量中,如果设置了该变量,它将从数据库中加载用户所需的所有信息。但是,我还想要一个“记住我”选项,为此我需要 cookie,但我不确定在其中存储什么。如果只是存储用户 id,那将是有风险的,因为有人可以更改 id 并成为不同的用户。我目前的想法是这样做:

$array = array($user['username'], $user['pass']);
            serialize(base64_encode($array));

因此,如果设置了 cookie,我将对其进行反序列化,并找到具有密码和用户名的用户(密码本身在 MD5 中经过哈希处理)。 但是,我认为这不是很安全。我应该在 cookie 中存储什么以确保其安全,还有其他方法吗?

【问题讨论】:

    标签: php session cookies


    【解决方案1】:

    您可以从它创建一个哈希值并保存它,而不是将密码放入 cookie 中。您还可以将哈希值保存在数据库中,以便在比较 cookie 时,用户名和哈希值必须匹配,以避免暴露密码。

    您可以使用MD5 创建一个简单的哈希。

    【讨论】:

    • 您没有阅读整个问题。无论如何,在将密码存储到 cookie 之前,我已经对密码进行了哈希处理,当我检查 cookie 时,我使用哈希密码登录用户。这是否意味着它是安全的?
    • @cillosis 的意思主要是将会话数据与随机散列一起保存在数据库中(不要将用户数据存储在 cookie 中,因为它允许更容易的会话劫持),最好是 sha256。哈希存储在 cookie 中,以便在 cookie 存在且有效时可以恢复会话数据。另外,md5 不被认为是安全的。
    猜你喜欢
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    相关资源
    最近更新 更多