禁止用户在注销后返回安全页面,jsp with firefox 5.0
Posted
技术标签:
【中文标题】禁止用户在注销后返回安全页面,jsp with firefox 5.0【英文标题】:prohibit the user from going back to a secure page after logout,jsp with firefox 5.0 【发布时间】:2011-10-03 01:52:14 【问题描述】:我想禁止用户在注销后单击浏览器上的返回按钮(在我的例子中是 Mozilla Firefox 5.0)时返回到安全页面。 找到了两种方法, 设置正确的标题:
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "No-cache");
response.setDateHeader("Expires", 0);
或使用 javascript 禁用后退按钮:
<script type="text/javascript">
window.history.forward(1);
</script>
实际上javascript并没有禁用后退按钮,只是在历史记录中向前用户转发一页,应该可以达到目的。
但两者都不起作用。我的注销页面包含以下代码:
<script type="text/javascript">
window.history.forward(1);
</script>
<% HttpSession ses=request.getSession(false);
ses.invalidate();
String referer = request.getHeader("Referer");
response.sendRedirect(referer);
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "No-cache");
response.setDateHeader("Expires", 0);
%>
不符合我的目的。请帮忙。
【问题讨论】:
【参考方案1】:需要在所有受保护的页面本身上设置这些标头,而不是在您放置实际属于 servlet 的注销逻辑的 JSP 上。更重要的是,由于您在此处发送重定向,因此这些标头完全没有效果。
正确的方法是将Filter
映射到所需的 URL 模式上,从而完成这项工作。我敢肯定,您最初在这里找到的大多数答案也表明:)
另见:
Prevent user from seeing previously visited secured page after logout【讨论】:
以上是关于禁止用户在注销后返回安全页面,jsp with firefox 5.0的主要内容,如果未能解决你的问题,请参考以下文章