可能重复:
Prevent user from going back to the previous secured page after logout
我需要通过阻止用户在注销后访问它来保护java应用程序(mvc)。
目标:
1.注销后,用户不能使用浏览器后退按钮访问受限页面。 2.注销后,用户不能访问浏览器历史记录中的任何受限制的URL
谷歌搜索后我明白禁用浏览器后退按钮不是一个好习惯。那么我怎样才能在JSP中达到最佳效果?
感谢和安培;问候 阿希什
答案 0 :(得分:7)
在每个页面中,您可以清除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
属性值,如果没有,则会将您重定向到login
页面。但请记住,登录后您将在会话中设置some_token
属性。
答案 1 :(得分:0)
保护资源的一般方法 -
答案 2 :(得分: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 %>