【问题标题】:Why is CodeIgniter storing IP address, user agent and last activity in cookie?为什么 CodeIgniter 在 cookie 中存储 IP 地址、用户代理和上次活动?
【发布时间】:2012-02-10 03:11:42
【问题描述】:

我读过 Why does codeigniter store its sessiondata in a cookie?

我仍然不明白为什么 Codeigniter 需要在会话 cookie 中存储 IP、用户代理和最后一个活动。会话 ID 不是它应该存储在 cookie 中的唯一变量吗?我的 Web 应用程序将会话数据存储在数据库中 - 那么为什么这些数据仍存储在 cookie 中。此外,Codeigniter 不应该从 $_SERVER 变量中获取 IP 和用户代理吗?

有人可以澄清一下吗?我还通过 Sessions http://codeigniter.com/user_guide/libraries/sessions.html 阅读了 CI 的文档,它说我的自定义会话数据也将保存在 cookie 中,但似乎情况并非如此。为什么?

【问题讨论】:

    标签: codeigniter session cookies


    【解决方案1】:

    我考虑的唯一原因是安全性。如果有人窃取了您的 cookie 并尝试以您自己的身份登录,那么他可能没有相同的 IP 和 User-Agent。在这种情况下,CodeIgniter 会检测到可能的入侵并结束会话。

    关于 cookie 中的会话数据,这取决于您告诉 CodeIgniter 的存储位置/方式。它可以在数据库中,或者在加密形式的 cookie 中,或者只是在 cookie 中的纯文本(虽然是序列化的)。

    【讨论】:

    • 是的,但是攻击者可能只是改变了cookie?他无法伪造存储在 $_SERVER['REMOTE_ADDRESS'] 中的自己的 IP 地址,但他可以在 cookie 中这样做……我不明白将 IP 存储在 cookie 中如何带来更高的安全性,这实际上是对面的?还是我错了?
    • 你是对的,这只是攻击者可能会忘记的东西。实际上,当这种数据超出攻击者范围(例如:在数据库中)时,它更有意义。在这种情况下,攻击者甚至不知道存储了什么 IP/UserAgent 并且无法复制它。正如我所说,我只是猜测:)
    猜你喜欢
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 2011-10-04
    相关资源
    最近更新 更多