3

单击注销按钮时,我想在浏览器中注销我的 Web 应用程序。并且只想用 js 代码实现它。所以,没有注销 servlet。这意味着,我需要删除现在使用并存储在浏览器内存中的 sessionid,但我该怎么做呢?

4

1 回答 1

10
  1. 出于安全原因,您所有的会话 cookie 都应该是 httpOnly。这将确保 cookie 无法在 javascript 中访问,并会降低 XSS 附加的风险。这也意味着不能只在客户端清除 cookie。

  2. 当用户单击注销时,您可能有兴趣清除服务器端资源。至少为此,您应该访问服务器。

综上所述。我建议您对您的 servlet 进行 AJAX 调用,这可以清除您的 cookie 并释放为该会话分配的服务器端资源。

如果您仍然不相信并且必须使用 javascript 清除 cookie,请参阅 SO question delete cookies using javascript

于 2012-04-26T06:28:25.953 回答