防止用户在jsp中注销后返回

Preventing User to go back after logout in jsp

本文关键字:注销 返回 jsp 用户      更新时间:2023-09-26

可能重复:
阻止用户在退出后返回上一个安全页面

我需要通过防止用户在注销后访问java应用程序(mvc(来保护它。

目标:

1.最终用户在注销后应无法使用浏览器返回按钮访问受限页面。2.最终用户在退出后,不应能够访问浏览器历史记录中的任何受限URL

谷歌搜索后,我明白禁用浏览器返回按钮不是一个好的做法。那么,我如何才能在JSP中达到最佳效果呢?

谢谢&当做Ashish

在每一页中,您可能都可以清除cached page

  <%
  response.setHeader("Cache-Control","no-cache");
  response.setHeader("Cache-Control","no-store");
  response.setHeader("Pragma","no-cache");
  response.setDateHeader ("Expires", 0);
  if(session.getAttribute("some_token")==null)
      response.sendRedirect("login/login.html");
  %> 

logout中,您必须使会话无效,因此当您单击返回时,它会检查session中的some_token属性值,如果没有,它会将您重定向到login页面。但请记住,登录后您正在会话中设置some_token属性。

保护资源的通用方法-

  1. 将会话属性检查(例如用户对象(放入受限页面控制器
  2. 注销后使会话无效

对于每个受限制的JSP/Servlet,您应该检查用户是否已登录。如果用户未登录,请将其重定向到非受限制的页面。(你不需要任何JavaScript(

<%
   int userId = session.getAttribute("userId");
   if(userId == null) {
      response.sendRedirect(redirectURL);
   }
%>

当用户注销时,您会使会话无效,所以当用户试图访问受限制的JSP/Servlet页面时,您的身份验证逻辑会重定向他。

<% session.setAttribute("userId", null); // in your logout.jsp page %>