我在我的ASP.NET webapp应用程序的表单身份验证中使用“记住我”。如果我使用有效的凭据登录,并选择“记住我”,我就可以登录,一切都很好。现在,如果我关闭窗口,打开SQL server并更改密码,然后尝试打开webapp,它会绕过登录过程,并使用我从“记住我”中缓存的旧凭据,并允许我登录。
这是正常行为吗?如果是这样的话,我唯一能想到的就是删除“记住我”选项,或者使用一个非常短的过期时间。
有什么建议吗?
发布于 2013-01-31 03:23:40
这很正常。原因是,为了记住用户,需要在客户机上存储某种形式的密钥,以便绕过登录过程。假设您使用的是ASP.NET的集成成员资格功能,那么实际上您在cookie中存储了一个标识用户的唯一令牌。这与密码无关,原因多种多样。这意味着自动登录是独立于密码的,因此更改它在逻辑上不会影响此功能。
如果安全性是一个问题,你可以考虑缩短记忆保持有效的时间跨度。或者,正如您所提到的,如果此功能带来太大的风险,您可以完全避免使用它。密码记忆是在绝大多数网站上实现的常见功能,如果您使用的是ASP.NET的集成成员功能,您的安全风险将降至最低,但最终您需要检查您的特定情况,并确定此功能是否对您有意义。
https://stackoverflow.com/questions/14611981
复制相似问题