这是Is Forms Authentication as described in the Nancy docs susceptible to session hijacking?
的后续问题我现在明白Nancy Form身份验证的工作原理以及它背后的想法,感谢Steven Robbins' answer。
但是,对于我的应用程序,这种方法还不够。如果攻击者设法窃取了一次auth cookie,就不可能获得永久访问权限。因此,我目前正在研究切换到基于会话的身份验证方法的可能性,因此我可以在用户注销时以及在一段固定时间后使会话无效。
关于南希的好事,这样的事情可以定制!
我的问题是,为此目的重用Nancy.FormsAuthentication是否有意义?我想到的一个解决方案是使用户标识符仅暂时有效。这样我就会在用户注销时从用户数据库中删除GUID标识符,并在每次用户登录时创建一个新标识符。
我问,因为文档声明:
知道标识符应该被视为是非常重要的 永久为用户生成并将被重用 跨请求和应用程序会话。
当我忽略它并使标识符成为非永久性的时候是否有任何不必要的副作用?
答案 0 :(得分:0)
是和否。
如果每次用户登录时都更改它,那么您实际上是在将用户注销。
您可以创建一个会话/身份表,允许同一用户多次登录(假设浏览器不同),这样您就可以管理超时/延长每次身份验证的超时。
这不需要更改Forms Auth,您只需更改IUserMapper以针对您的Session / Identity表而不是用户直接进行身份验证。
(希望一切都有意义)