java如何在浏览器中跳过浏览页面的历史记录
由于一些安全限制,要求访问的页面不应列在浏览器的历史记录中
因此,这些页面根本不需要显示在历史中
我尝试过以下方法,但失败了
解决方案1:
1. <%
2. session.invalidate();
3. response.setHeader("Cache-Control","no-cache");
4. response.setHeader("Cache-Control","no-store");
5. response.setDateHeader("Expires", 0);
6. response.sendRedirect("home.jsp");
7. %>
解决方案2:
<%
Response.Cache.SetExpires(DateTime.Parse(DateTime.Now.ToString()))
Response.Cache.SetCacheability(HttpCacheability.Private)
Response.Cache.SetNoStore()
Response.AppendHeader("Pragma", "no-cache")
%>
解决方案3:
<body onload="history.forward()">
解决方案4:
<%
response.setDateHeader("Last-Modified", System.currentTimeMillis());
%>
与Firefox一样,Firefox中也有功能工具->;启动不存储任何会话数据的私人浏览。JavaScript可以做些什么来实现这一点吗
# 1 楼答案
在安全问题上,你不能依赖客户端。所有浏览器都有不同的历史实现。您应该依赖服务器端解决方案
# 2 楼答案
这种行为由浏览器而不是服务器控制,因此您的选择非常有限
实现这一点的一种方法是在站点a上创建一个页面,其中只包含一个iframe,用于加载您不希望在浏览器历史记录中看到的站点内容
但它仍然很脆弱。用户可以使用“在新窗口/选项卡中打开链接”来打开外壳
如果您可以访问客户端,一种解决方案是安装在“设置”中关闭历史记录的浏览器,并限制对浏览器首选项的访问,以便用户无法更改此选项