如易于会话劫持的Nancy Doc中所述,是表格身份验证



我阅读了Nancy表单身份验证的文档。据我所知,建议的方法导致终身会议ID:

"标识符是将在身份验证中放置的令牌 将用于重新建立用户身份的cookie 那是在执行请求,因此您无需输入您的 每个请求的凭据。"

据我了解,

"标识符"是大多数人称为会话ID的内容。

也必须知道标识符应被视为 为用户生成并将重复使用的用户永久 跨请求和应用程序会议。

这真的是推荐的方法吗?如果我正确理解,这意味着会话ID永远不会改变,也永远不会过期。因此,会话ID相当于密码,

  • 在每个请求中都在cookie中重新启动
  • 如果您按照Docs到End

我知道我可以用南希以不同的方式实现这一目标,但我的观点是,不应在文档中解释这种方法作为参考。

因此,如果攻击者曾经成功窃取该会话ID,例如通过XSS攻击,他获得了对系统的终身访问。

请纠正我,向我展示我的想法中的错误!

您所引用的标识符不是会话ID,它是不可预测的用户标识符,然后将其映射到后端的真实用户标识符。如果有人将其登录为用户X,并且以某种方式设法解密,重新加入和重新签名cookie,他们不能仅将用户ID更改为" admin"或类似的东西并获得admin访问(这就是方式ASP.NET Oracle攻击起作用)。它也是httponly,因此无法通过XSS真正捕获,尽管从技术上讲它可以使用XST捕获。

创建和到期会话(必要时删除auth cookie)是一项不同的任务 - 如何以及何时确定是否应接受额外密码请求的验证,删除或确认auth cookie。现在,这是一个常见的模式,一个网站会考虑您"永恒地登录",直到您做"安全",在这种情况下,它会要求您重新验证您是否最近没有这样做。

>

希望这是有道理的。

"标识符"是大多数人称之为会话ID的内容。

不是。就像用户ID一样。如文档所述:

我们选择使用GUID作为标识符。这样做的原因是,使用ID的用户名之类的东西是一个潜在的漏洞,因为,如果cookie加密以某种方式受到损害,则很容易通过猜测他们的用户名或ID来欺骗另一个用户的身份。

他们只是使用分配给用户的GUID以获得更多安全性。当然,(基于cookie的)formauthentication具有cookie的所有缺点。如果某人可以访问您的Auth Cookie,他们可以像您一样对自己进行身份验证。但是会话cookie和表格身份验证cookie完全不同,此答案很清楚地表明了差异。

最新更新