C# Nancy文档中描述的表单身份验证是否容易被会话劫持?
我读了他的文件。据我所知,这里推荐的方法会导致终身会话ID: “标识符是将放入身份验证中的令牌 用于重新建立用户身份的cookie 即执行请求,这样您就不需要输入 每个请求的凭据。” 据我所知,“标识符”是大多数人所说的会话ID 同样重要的是要知道标识符应被视为 为其生成并将被重用的用户的永久 跨请求和应用程序会话 这真的是推荐的方法吗?如果我理解正确,这意味着会话ID永远不会更改,也永远不会过期。因此,会话ID相当于密码C# Nancy文档中描述的表单身份验证是否容易被会话劫持?,c#,authentication,session-cookies,nancy,C#,Authentication,Session Cookies,Nancy,我读了他的文件。据我所知,这里推荐的方法会导致终身会话ID: “标识符是将放入身份验证中的令牌 用于重新建立用户身份的cookie 即执行请求,这样您就不需要输入 每个请求的凭据。” 据我所知,“标识符”是大多数人所说的会话ID 同样重要的是要知道标识符应被视为 为其生成并将被重用的用户的永久 跨请求和应用程序会话 这真的是推荐的方法吗?如果我理解正确,这意味着会话ID永远不会更改,也永远不会过期。因此,会话ID相当于密码 在cookie中随每个请求重新传输 如果您一直按照文档进行操作,则可能
- 在cookie中随每个请求重新传输
- 如果您一直按照文档进行操作,则可能以明文形式存储在数据库中
他们只是使用分配给用户的GUID来提高安全性。当然,(基于cookie的)FormsAuthentication具有cookie的所有缺点。如果有人可以访问您的身份验证cookie,他们可以作为您进行身份验证。但是会话cookie和表单身份验证cookie是完全不同的东西,它们之间的区别非常清楚。您所指的标识符不是会话id,而是一个不可预测的用户标识符,然后将其映射(如有必要)到后端的真实用户标识符。因此,如果有人以用户X的身份登录,并以某种方式对cookie进行解密、重新加密和重新签名,那么他们就不能将用户ID更改为“admin”或类似的内容,从而获得管理员访问权限(这就是ASP.Net Oracle攻击的工作原理)。它也是HttpOnly,因此不能通过XSS捕获,尽管从技术上讲,它可以通过XST捕获 创建和终止会话(并在必要时删除身份验证cookie)是一项完全不同的任务—确定是否接受、删除身份验证cookie或何时使用其他密码请求确认身份验证cookie的方式和时间取决于应用程序。这是一个常见的模式,一个站点会一直认为你“登录”,直到你做了一些“安全”,在这种情况下,它会要求你重新验证,如果你还没有这样做最近。
希望这是有道理的。Ahh-这与南希无关。这与ASP.NET有关,OP是在询问南希的情况。@Phill:这就是为什么我不应该在凌晨1点以后访问南希的原因。谢谢你的提醒!尽管该链接是针对ASP.NET的,但您为我指明了正确的方向(auth cookies vs.session cookies),谢谢。@theDmi:我编辑了这篇文章,删除了ASP.NET特定的关于会话固定攻击的内容。但是,使用Firebug并运行
Nancy.Demo.authentication.Forms
project和检查cookie,您总能找到更多关于Nancy的身份验证cookie的信息。它创建了一个名为\u ncsa
的加密cookie。感谢您的澄清,这帮了大忙。现在我将再次阅读该文档:-)。这意味着实际上没有会话ID,对吗?我唯一需要担心的是auth cookie,我通过Login()、Logout()等扩展方法控制它