1

问题 1

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

我一直在博客、Stackoverflow 帖子,甚至是声称$config['sess_use_database'] = TRUE;更安全的 CI Docs 上磕磕绊绊,但如果 cookie 被加密,从安全角度来看,存储位置(在 cookie 或数据库中)似乎user_data并不重要。

问题2

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

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?它从哪里来的?

4

1 回答 1

6

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

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

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

于 2012-09-09T20:31:52.443 回答