security - 将 session 存储在加密的 cookie 中

标签 security http session authentication cookies

使用带有 HMAC 的加密 cookie 在客户端存储 session 是个好主意吗?

有一个问题:如果有人发现 key ,他们就可以获得任何用户帐户的访问权限。通过将用户密码散列的一部分附加到 cookie 可以消除这个问题吗?然后在服务器端,您可以将该哈希值与实际值进行比较。

最佳答案

除了验证用户的凭据之外,您不想将密码哈希用于任何其他用途。不确定您是否有其他暗示,但您绝对不想无缘无故地泄漏哈希值(部分或其他)。

您说得完全正确,如果恶意用户发现 key ,加密 + HMAC 就可能被破坏。这就是为什么我们必须极其小心地保管 key 。恶意用户几乎不可能从正确加密的密码中确定 key 。

为了获取您的 key ,他们必须破坏您的服务器。如果他们可以危害您的服务器,那么这一切都无关紧要。您的提案要做的就是让他们必须获得两把 key ,而不是一把。他们可以访问您的加密 key ,因此他们可能可以访问您的数据库......因此哈希值已经暴露。这就像在有人已经进入你的城堡后添加一条护城河。

总之,加密+hmac没有被破解。假设您已正确实现它,就足以保护您的 cookie。

关于security - 将 session 存储在加密的 cookie 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29492830/

相关文章:

Apache 中的 PHP session

php - Session_id 在页面源代码中可见,可以吗?

php - 如何处理一个项目中模块的不同登录凭据?

http - Angular2 路由和拦截调用(HTTP API 中的某些地方从版本 2.1.0 更改为版本 2.2.3。)

android - RxJavaCallAdapter 和结果代码

php - Codeigniter/PHP session 安全问题

php - 为什么 Laravel 的重置密码功能使用数据库,而电子邮件验证使用签名路由?

javascript - 保护 HTTP 流量不被嗅探

php - 为什么要发送带有状态码的 header ?

session - StackExchange RedisTimeoutException