当前现代 Web 应用程序如何处理重新身份验证

How reauthentication is handled in current modern web application

在我们的网络应用程序中,当用户登录时,如果会话空闲时间超过 15 分钟,用户必须再次输入登录凭据才能继续。

由于我不使用其他网络应用程序,所以我想就此事提出以下问题:

这样的重新认证在当前的网络应用程序中很常见吗?

它在多少分钟不活动后出现?

从安全的角度来看,只询问密码(而不是用户名)是否常见且合理?

如果您重新验证失败(3 次),是只结束会话还是锁定整个帐户更常见?

提前致谢

会话通常在 15 到 20 分钟后超时,具体取决于它在 IIS 中的设置。这是用户注销的合理空闲时间。如果您需要您的应用程序闲置并且仍然可用的时间比您想要研究令牌身份验证(无状态)和使用刷新令牌的时间更长。

重新认证

重认证是在对一个人的身份进行核对后,对一个人的身份进行二次确认的过程。通常,用户必须强制执行额外的登录,以确保正在访问受保护资源的用户与在会话开始时最初进行身份验证的用户是同一个人。强制重新身份验证为安全域中的敏感资源提供额外保护。

身份验证是基于令牌的。 Rest APIs 也是这样设计的,有时可以执行重新认证。

当然是用session了。

这样的重认证在现在的web应用中很常见吗? 是的。大多数有权访问有价值数据的 Web 应用程序都实施重新身份验证机制以防止信息泄露。

闲置多少分钟后? 取决于应用程序和您保护的数据的敏感性。正常超时为 15 到 20 分钟(在银行网络应用程序中甚至更短)

从安全的角度来看,只询问密码(而不是用户名)是否常见且合理? "Login"指的是用户名和密码的正确组合。大多数网络应用程序会再次要求您输入用户名。除非那是您启用了 "Remember my username" 选项。这是因为恶意用户可能会在您的会话超时后访问 Web 应用程序后获取您的用户名。如果他也设法拿到你的电子邮件(通常与你的用户名相关联),他可以轻松地重置你的密码并对你的帐户做任何他想做的事

如果重新验证失败(3次),是结束会话还是锁定整个账户更常见?这也取决于应用程序。

数据很有价值->锁定账号

没那么多-> 结束会话并强制重新验证(再尝试 3 次)

两全其美-> 将用户名超时一段固定的时间(范围从半小时到几个小时),然后强制重新验证。