服务器注销失败 > 仅客户端注销?

Server logout failed > client only logout?

我有一个一般性问题。我有一个使用 cookie 进行身份验证的 Web 应用程序。 cookie 也由服务器验证。

但是遇到以下情况我该怎么办:

问题是。我现在该怎么办?

  1. 显示错误消息并保持客户端登录(我应该说什么?)
  2. 注销客户端并显示错误消息(再次:我应该说什么?)
  3. 注销客户端,不显示任何消息。 (万一遭到黑客攻击,黑客可以使用客户端的Authentication token,因为服务器什么都不知道,而客户端什么都没有注意到)

希望您的会话超时很短,这样用户无论如何都会在 20 分钟左右后注销。

这是基于个人意见,但我的建议是尽可能清除客户端的 cookie - 这只有在您的会话 cookie 不是 httponly 时才有可能,而它们应该是。如果由于攻击者阻止对注销的访问而无法注销客户端 URL 那么:

是的,显示错误消息让用户了解情况。毕竟,处于风险中的是他们的帐户。类似于 "You could not be logged out. Please try again. If the problem persists, please contact us. It is recommended to clear your cookies."

所以要回答你的问题,最好的回答是#2,但是如果你将会话安全作为优先事项,这可能是不可能的,所以你将不得不选择#1。