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

问题描述:

我有一个普遍的问题。我有一个使用Cookie进行认证的Web应用程序。此外,该cookie由服务器验证。服务器注销失败>仅客户端注销?

但我应该在以下情况下做到:

  • 在注销用户点击按钮
  • 通过AJAX注销请求被发送到服务器
  • 服务器关闭或阻断一个黑客,所以注销请求不通过

问题是。我现在应该怎么做?

  1. 显示错误消息,并且(再次?我该说什么)保持记录在客户端(我该说什么?)
  2. 注销客户,并显示一条错误消息
  3. 注销客户端和不显示任何消息。 (在黑客攻击的情况下,黑客可以使用客户端身份验证令牌,因为服务器不知道任何东西,但客户端没有注意到任何东西)

希望你有一个短会话超时,所以无论如何20分钟左右用户将被注销。

这是一种基于意见的建议,但我的建议是如果可能的话,清除cookie客户端 - 只有当您的会话cookie不是httponly时,它才应该是这样。如果因为攻击者阻止访问注销URL而无法登录客户端,则:

是的,显示一条错误消息以通知用户。毕竟,他们的账户处于风险之中。 “你无法注销,请重试,如果问题仍然存在,请与我们联系,建议清除你的cookies。”

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

+0

感谢您的答复。由于我们使用JWT来完全无状态,所以我们可以在客户端注销。但感谢通知。 – waXve