gpt4 book ai didi

c# - Nancy 文档中描述的表单例份验证是否容易受到 session 劫持?

转载 作者:行者123 更新时间:2023-11-30 14:57:00 31 4
gpt4 key购买 nike

我阅读了 Nancy Forms Authentication 的文档.据我所知,那里推荐的方法会导致终身 session ID:

"The identifier is the token that will be put in the authentication cookie which will be used to re-establish the identity of the user that is performing the request, so that you do not need to enter your credentials for each request."

据我所知,“标识符”就是大多数人所说的 session ID。

It is also important to know that the identifier should be treated as permanent for the user that it was generated for and will be reused across requests and application sessions.

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

  • 随每个请求在 cookie 中重新传输
  • 可能以明文形式存储在数据库中,如果您按照文档进行到底

我知道我可以用 Nancy 以不同的方式实现这个,但我的观点是,这种方法不应该在文档中解释为引用。

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

请指正我的错误并指出我的想法!

最佳答案

您所指的标识符不是 session ID,它是一个不可预测的用户标识符,然后映射(如果需要)到后端的真实用户标识符。如果有人以用户 X 身份登录,并且以某种方式设法解密、重新加密和重新签署 cookie,他们就不能仅仅将用户 ID 更改为“admin”或类似的东西并获得管理员访问权限(这就是ASP.Net Oracle 攻击奏效了)。它也是 HttpOnly,因此不能真正通过 XSS 捕获,尽管从技术上讲它可以使用 XST 捕获。

创建和终止 session (并在必要时删除 auth cookie)是完全不同的任务 - 您如何以及何时确定是否应该接受、删除或确认 auth cookie 与额外的密码请求是特定于应用程序的。现在这是一种常见的模式,网站会认为您永远“登录”,直到您执行“安全”操作为止,在这种情况下,如果您最近没有这样做,它会要求您重新验证。

希望这是有道理的。

关于c# - Nancy 文档中描述的表单例份验证是否容易受到 session 劫持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21461825/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com