问题1
基本上,我想问的是:即使$config['sess_encrypt_cookie'] = TRUE;
,$config['sess_use_database'] = TRUE;
是否更安全?
我一直在博客、Stackoverflow帖子,甚至CI文档中发现$config['sess_use_database'] = TRUE;
更安全,但从安全角度来看,如果cookie是加密的,user_data
的存储位置(在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
的意义是什么?它是从哪里来的?
问题1
这取决于你认为什么是安全的。
您设置的自定义数据将存储在数据库中,但session_id、ip_address、user_agent和last_activity仍将存储在cookie中。如果你认为这些数据是有害的,那么答案是肯定的。否则答案是否定的。
问题2
它是包含会话数据和加密密钥的序列化数据的散列。这用于确保cookie数据未被篡改。