【问题标题】:Are CodeIgniter database sessions more secure even if cookies are encrypted?即使 cookie 被加密,CodeIgniter 数据库会话是否更安全?
【发布时间】:2013-05-08 07:52:25
【问题描述】:

问题 1

基本上,我要问的是:即使$config['sess_encrypt_cookie'] = TRUE;$config['sess_use_database'] = TRUE; 是否更安全?

我一直在博客、Stackoverflow 帖子甚至 CI Docs 上磕磕绊绊,声称 $config['sess_use_database'] = TRUE; 更安全,但似乎 user_data 的存储位置(在 cookie 或数据库中)对于如果 cookie 无论如何都被加密,则安全角度。

问题 2

如果您设置 $config['sess_encrypt_cookie'] = FALSE; 并检查 cookie,无论 $config['sess_use_database'] 的值如何,都会有一个(似乎是 md5)哈希卡在 cookie 的末尾 - 这是一个示例:

a:4{
  s:10:"session_id";
  s:32:"a2caac03fc72d709ac280540a09d8ed7";
  s:10:"ip_address";
  s:9:"127.0.0.1";
  s:10:"user_agent";
  s:100:"Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.14 Safari/537.4";
  s:13:"last_activity";
  i:1347228760;
}7aa8ebe3fc462bd86c0c0544a969cbda

7aa8ebe3fc462bd86c0c0544a969cbda的意义是什么?它是从哪里来的?

【问题讨论】:

    标签: php codeigniter session cookies


    【解决方案1】:

    问题 1
    这取决于您认为什么是安全的。

    您设置的自定义数据,将存储在数据库中,但 session_id、ip_address、user_agent 和 last_activity 仍将存储在 cookie 中。如果您认为这些数据会受到影响,那么答案是肯定的。否则答案是否定的。

    问题 2
    它是包含会话数据和加密密钥的序列化数据的哈希值。这用于确保 cookie 数据未被篡改。

    【讨论】:

    • +1 而不是回答提供额外的输入,我只想补充一点,人们认为数据库方法更安全,因为您可以绝对验证会话的有效性,而使用 cookie,甚至加密的,有可能(无论多么轻微)被伪造。
    • 数据库会话不受 4kb 限制(如 cookie)——这有时会导致意外问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2011-06-11
    • 1970-01-01
    • 2013-09-10
    • 2017-04-22
    • 2011-03-12
    • 2012-01-16
    相关资源
    最近更新 更多