0

我在我的网站中使用 Google 双重身份验证,但我希望用户能够检查“记住我”,而无需在下一个条目时输入密钥。是否可以通过“记住我”选项绕过身份验证。我知道潜在的危险,但我们需要这样做。

4

1 回答 1

0

不知道这是否仍然有帮助,但我想我还是会回答。您尚未指定您使用的编程语言,这使得给您一个特定于语言的答案有点困难,因此我将根据我编写C# ASP.NET MVC 两因素身份验证实现的经验来回答,但该方法应该与语言无关。

没有什么可以阻止您实施“记住我”功能,该功能允许用户绕过整个身份验证步骤(用户名/密码 + TFA)。假设双因素身份验证已正确实​​施,它实际上与您将实施的任何其他“记住我”功能没有任何不同。

通过正确实施两因素身份验证,我的意思是您的登录应该是一个两步过程(您可以一次性完成,但它会降低可用性,为了解释起见,我将它们分开)

  1. 用户指定他们的用户名和密码。如果他们提供了有效的用户名/密码组合,那么他们将被传递到第二步,但他们尚未经过身份验证!他们应该无法导航到需要用户登录的任何页面。
  2. 用户指定他们的第二个因素。只有当用户提供正确的第二个因素时,他们才应该被认证并允许继续。

在我的代码中,我在第一步中有“记住我”复选框,然后如果用户提供了有效的用户名/密码组合,我将存储 UserProfile 对象以及是否在会话中选中了“记住我”并将用户重定向到第二个因素页面。

然后,如果用户为存储在会话中的用户提供了正确的第二个因素,那么您登录用户,如果他们选中“记住我”,则将到期日期添加到 cookie,否则将其保留为空的到期日期然后将在浏览器关闭时过期。

希望这能回答您的问题,我已尝试不从我的网站上复制整篇文章,所以如果您认为我遗漏了什么,请随时查看,如果您仍然没有答案,请告诉我,我会更新我的答案。

于 2013-11-26T08:22:57.657 回答