当我们在任何 ASP.NET 框架(ASP.NET MVC、Web 窗体等)中使用 ASP.NET 表单身份验证时,我们会将身份验证 cookie 持久保存在客户端的浏览器中。作为最佳实践,我们将 cookie 设置为 HttpOnly 且安全。我们还通过 SSL 进行所有交易。无论我们使用什么样的机制来验证用户(OAuth、ASP.NET Membership Provider 等),我们仍然需要持久化验证以获得更好的用户体验。
有了所有这些,我假设有人仍然可以从客户端浏览器中获取 cookie 并使用这些 auth cookie 值发出请求。服务器无法检测到这一点,我们会将受保护的数据提供给其他人。
一个想法是,我想降低这里的风险,每次他/她尝试采取一些严肃的行动(例如更改电子邮件地址,访问个人资料信息等)时询问客户的密码,但这并不能解决任何事情,对客户来说都可能很烦人。
对于此类问题,您是否有任何积极遵循的方法?或者在客户端浏览器中保持身份验证的最佳方法是什么?