我在ASP.NET身份验证的表单身份验证中使用“记住我”。 如果我使用有效凭据登录并选择“记住我”,我可以登录,一切都很好。 现在,如果我关闭窗口,打开SQL服务器并更改密码,然后尝试打开webapp,它会绕过登录过程并使用“记住我”中的旧缓存凭据并允许我登录。
这是正常行为吗? 如果是这样,我唯一能想到的就是删除“记住我”选项或使用非常短的过期时间。
有什么建议吗?
答案 0 :(得分:1)
这很正常。原因是为了记住用户,需要将某种形式的密钥存储在客户端机器上以允许绕过登录过程。假设您使用的是ASP.NET的集成成员资格功能,那么您实际上在cookie中存储了一个标识用户的唯一令牌。由于各种原因,这与密码无关。这意味着自动登录与密码无关,因此更改它不应在逻辑上影响此功能。
如果担心安全问题,您确实可以考虑缩短记忆保持有效的时间跨度。或者正如您所提到的,如果它具有太大的风险,您可以完全避开此功能。密码记忆是在绝大多数网站上实现的常见功能,如果您使用ASP.NET的集成成员身份功能,您的安全风险将被最小化,但最终您需要检查您的特定情况并确定此功能是否使感觉适合你。