使用带有 HMAC 的加密 cookie 在客户端存储 session 是个好主意吗?
有一个问题:如果有人发现 key ,他们就可以获得任何用户帐户的访问权限。通过将用户密码散列的一部分附加到 cookie 可以消除这个问题吗?然后在服务器端,您可以将该哈希值与实际值进行比较。
最佳答案
除了验证用户的凭据之外,您不想将密码哈希用于任何其他用途。不确定您是否有其他暗示,但您绝对不想无缘无故地泄漏哈希值(部分或其他)。
您说得完全正确,如果恶意用户发现 key ,加密 + HMAC 就可能被破坏。这就是为什么我们必须极其小心地保管 key 。恶意用户几乎不可能从正确加密的密码中确定 key 。
为了获取您的 key ,他们必须破坏您的服务器。如果他们可以危害您的服务器,那么这一切都无关紧要。您的提案要做的就是让他们必须获得两把 key ,而不是一把。他们可以访问您的加密 key ,因此他们可能可以访问您的数据库......因此哈希值已经暴露。这就像在有人已经进入你的城堡后添加一条护城河。
总之,加密+hmac没有被破解。假设您已正确实现它,就足以保护您的 cookie。
关于security - 将 session 存储在加密的 cookie 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29492830/