这两个我的意思是:
会话身份验证:在会话变量中存储“已通过身份验证”状态。
Cookie 身份验证:在受 HMAC 保护的 cookie 中存储“已通过身份验证”状态。
问题:从安全的角度来看,一种方式与另一种方式相比有什么优势吗?
我似乎为 cookie 方法找到的最佳原因是服务器必须存储更少的数据,这与安全性无关。
额外说明
假设你告诉我使用 cookie 身份验证更好......
我见过很多使用 cookie 身份验证但无法将其与会话链接的 Web 应用程序。这是一个问题,因为他们将用户信息存储在会话中,例如他的访问权限。因此,您可以构建一个简单的攻击,例如在几乎没有权限的自己帐户上登录,然后从管理员那里窃取会话 cookie,然后冒充他。
我的意思是,无论基于 cookie 的方案对会话方法有什么优势,它都失去了它(因为会话管理不善)。在上述场景中,基于 cookie 的方法不会带来任何安全性。