饼干的解剖学


Anatomy of a cookie

我是饼干新手。试图了解我的网站在用户登录时设置的此cookie的结构。我正在使用Yii在PHP中构建,我还在配置中启用了cookie验证。只是想确保它是否正常工作(设置了HMAC令牌(以及我是否对任何漏洞持开放态度.

dd3b7ffe10018a899b39986a9d94dfd3b64e7e4as:

248:"05035a5ae619356a622ed6ed805b6695a4fd6c44a:4:{i:0;s:18:"mjkvj003@gmail.com";i:1;s:18:"mjkvj003@gmail.com";i:2;i:604800;i:3;a:4:{s:6:"userid";s:2:"10";s:8:"用户名";s:18:"mjkvj003@gmail.com";s:4:"type";s:10:"诊断";s:6:"状态";s:7:"挂起";}}";

cookie 名称本身是一个随机的 32 个字符的字母数字序列。我还有一个单独存储会话 ID 的 phpsession cookie .这里mjkvj003@gmail.com是用户名、类型和状态都是与应用相关的变量。我以为 cookie 用于分配值=,但在这里我看到正在使用:.这是对的吗?

这不是 cookie 的内容。它是PHP $_SESSION内容的序列化表示,它是通过调用该数组上的serialize产生的。

Cookie 本身只包含会话 ID,它让 PHP 知道要unserialize哪些序列化会话数据,并作为脚本$_SESSION提供。

第一行是 Yii 设置的 HMAC 令牌。挖掘框架文件,发现它们设置了令牌并序列化了cookie数据。