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



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

但是在下面的场景中我应该怎么做呢?

  • 用户点击注销按钮
  • 通过AJAX将注销请求发送到服务器
  • 服务器关闭或被黑客阻止,因此注销请求无法通过

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

  1. 显示错误信息并保持客户端登录(我该怎么说?)
  2. 注销客户端并显示错误消息(再次:我应该说什么?)
  3. 退出客户端,不显示任何消息。(在黑客攻击的情况下,黑客可以使用客户端认证令牌,因为服务器什么都不知道,而客户端什么都没有注意到)

希望您有一个短的会话超时,这样用户将在20分钟左右后注销。

这是一种基于意见,但我的建议是清除cookie客户端,如果可能的话-这是唯一可能的,如果你的会话cookie不是httponly,他们应该是。如果由于攻击者阻止对注销URL的访问而无法注销客户端,则:

是,显示一个错误消息来通知用户。毕竟,有风险的是他们的账户。类似于"您无法注销。请再试一次。如果问题仍然存在,请与我们联系。建议清除您的cookies。"

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

最新更新