【发布时间】:2015-07-07 01:55:38
【问题描述】:
我有一个通过 REST 与网络服务器通信的网络应用程序,该网络应用程序可以在公共计算机上运行,并允许多个用户在给定的时间段内登录和注销。
所有 cookie 都是 HTTP-only,这只是一个额外的安全措施,以覆盖成功的 XSS 攻击案例。这意味着必须进行 REST 调用才能强制注销。
我担心的是,当网络服务器因任何原因出现故障时(或变得无法访问,例如某处的网络电缆断开连接)。当用户点击注销时,实际上没有办法删除 cookie。这意味着用户可能会离开PC,同时当连接恢复或服务器恢复时,另一个用户可能会出现,并继续使用以前的用户帐户。
处理这个用例的典型方法是什么? (诚然不是特别常见)。
【问题讨论】:
-
在公共计算机上,用户至少应该使用私人浏览器选项卡/窗口......但是在假设他们不可能都具备足够的知识来应用至少这些基本措施的假设下,我会检查注销请求是否成功,并提醒他们它不起作用。
-
另外,减少会话生命周期可能有助于防止最坏的情况发生。如果您想在一段时间内“ping”服务器以保持会话处于活动状态,以免给可能在包含大量内容的页面上逗留更长时间的普通用户带来不便,那么当注销失败时应该停止该操作。 (如果它因为没有连接而失败,那么这并不重要,但可能还有其他原因。)您也可以提供缩短会话生命周期作为可选功能,比如说“我正在记录从公共计算机进入”登录表单中的复选框……
-
感谢 cmets 的帮助。
标签: javascript rest security httpcookie