【发布时间】:2018-06-10 16:08:01
【问题描述】:
我想知道用哈希对 cookie 进行签名以检查其完整性是否是个好主意?首先,我确实意识到我不应该在 cookie 中存储任何敏感数据,而是使用会话。这正是我所做的。但我仍然对用户能够修改甚至不那么重要的数据感到不舒服。 (我有点安全偏执狂:))
我想出了以下解决方案。假设我们有 cookie:
- PHPSESSID
- site_lang
- recently_viewed
现在,每当我更新 cookie 值时,我都会重新计算 cookie 的哈希值,其键为 cookie_hash,值为 md5(serialize($_COOKIE)+$secret)
唯一我没有使用 PHPSESSID 来计算和验证哈希,因为它不是由 CookieManager 类(我的自定义类)管理的,并且可能会使用新的会话 ID 和损坏的哈希进行刷新。
我担心的是,如果某些第三方包设置了它自己的 cookie,当然会绕过我的 CookieManager。它会崩溃哈希。那么这是个好主意吗?
【问题讨论】:
标签: php validation security cookies hash