Java 如何防止用户进入';背面';但是在JSP中注销后是否保留缓存?

Java 如何防止用户进入';背面';但是在JSP中注销后是否保留缓存?,java,jsp,caching,logout,aem,Java,Jsp,Caching,Logout,Aem,我需要让缓存保持启用状态,并禁止用户在注销后返回时查看信息 我知道,在浏览器中,按设计,注销+返回按钮时显示的缓存页面。我知道禁用缓存是强制注销+返回以强制重新验证的一种方式 使用JSP(特别是CQ5),这可能吗 我考虑了以下解决方案,但不确定哪种方法最适合我的需求: 禁用到处缓存。这是可行的,但不可接受,因为我们正在使用的发布服务器将忙于重新添加页面 “注销”按钮发布到A页。A页终止会话并将用户转发到B页,并显示一些“您已注销”消息。B页的“后退”将弹出浏览器提供的关于必须重新发布值的消息。是

我需要让缓存保持启用状态,并禁止用户在注销后返回时查看信息

我知道,在浏览器中,按设计,注销+返回按钮时显示的缓存页面。我知道禁用缓存是强制注销+返回以强制重新验证的一种方式

使用JSP(特别是CQ5),这可能吗

我考虑了以下解决方案,但不确定哪种方法最适合我的需求:

  • 禁用到处缓存。这是可行的,但不可接受,因为我们正在使用的发布服务器将忙于重新添加页面
  • “注销”按钮发布到A页。A页终止会话并将用户转发到B页,并显示一些“您已注销”消息。B页的“后退”将弹出浏览器提供的关于必须重新发布值的消息。是=他们注销(此时无害)并再次转发到B页。否=他们无害地坐在A页上。但是,“back”+“no”+“back”可能会将它们放在缓存页面上,或者从历史记录中选择的内容仍然会显示缓存页面
  • “注销”按钮弹出一个新窗口,询问他们是否确定/警告他们关闭会话。“我确定”执行window.opener.reload()或window.opener.close()。但是,如果JavaScript被禁用,我们就完了
  • “注销”发布到当前页面。所有页面都检查某些POSTd值的存在。如果存在,请转到带有“您已注销消息”的B页。类似于#2。这实际上会将页面重新缓存到“youhaveloggeout”页面中,但“backback Back”或“history”仍然会缓存页面

  • 有没有办法手动清除用户的缓存,或者强制对缓存的页面进行验证检查?我这里没有主意了…

    你这里的问题是你试图缓存一些应该保密的东西。在密码后面缓存信息是不安全的,这是一种风险

    但是,将页面的通用html部分缓存在密码后面可能是有意义的。在这方面,任何登录的用户都可以看到任何内容。只有用户名、地址、电话号码等特定信息才是敏感信息

    如果单独调用JSON来提取数据,infomration将是轻量级的,但仍然是安全的,因为它不会缓存在系统上,也不会填充html格式等

    该页面还可以智能显示登录质询,如果用户会话因任何原因中断,他们会重新键入并从中断的位置继续,同时仍保持后退按钮

    我还认为,如果历史记录中保存了任何敏感信息,例如id、操作等,也可能是一个问题


    只是要考虑的一些事情。

    只有大约2%的用户禁用JavaScript。您的任何用户都这样做了吗?我们可以假设每个人都打开了JS,只是优雅地降级,可能会有一条消息说“关闭您的浏览器”,但如果我们采用这种方法,那么其他人中的一个+一条消息说关闭您的浏览器似乎更好。您希望如何禁用缓存?你的意思是在浏览器中禁用它?