1

可能重复:
防止用户在注销后返回上一个安全页面

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

客观的:

1.最终用户在退出后应该无法使用浏览器后退按钮访问受限页面。2.Enduser在登出后应该无法访问浏览器历史记录中的任何受限URL

谷歌搜索后,我了解到禁用浏览器后退按钮不是一个好习惯。那么我怎样才能在 JSP 中最好地实现这一点?

谢谢&问候阿什什

4

3 回答 3

8

在每个页面中,您可能都可以清除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您必须使会话无效,因此当您单击返回时,它将检查some_token属性值session,如果不存在,它会将您重定向到loginpage 。但请记住,登录后您正在some_token会话中设置属性。

于 2013-01-04T07:06:36.603 回答
0

对于每个受限 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 %>
于 2013-01-04T07:16:34.923 回答
0

保护资源的一般方法 -

  1. 将会话属性检查(例如用户对象)放在受限页面控制器中。
  2. 注销后使会话无效。
于 2013-01-04T07:03:35.770 回答