0

我想在 JSP 中创建一个注销操作,这样就没有后退操作。目前,我正在使用 session.invalidate 方法来终止我现有的会话并指向登录页面。

但是,如果用户按下后退按钮,这并不能阻止页面加载。经过搜索,我知道 SSL 之类的东西就是用于此目的。谁能告诉我什么是 SSL(除了它的完整形式:)(安全套接字层))?它是如何使用的?

除此之外,经过大量搜索,我找到了这段代码

<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>

我将此代码保留在正文标记的开头,但它不起作用。可能是什么错误?我什至尝试用“no-store”代替“no-cache”?任何人都可以帮助我进行哪些更改或者我应该在哪里保留该特定代码?除此之外,有人有其他解决方案吗?

提前致谢。

4

1 回答 1

1

标题Cache-Control不完整。它还必须包含and 。no-storemust-revalidate

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.

也可以看看:

请注意,需要在每个需要登录的请求上设置这些标头。更容易的是为此使用单个 servlet 过滤器,这样您就不需要在所有 JSP 页面上复制粘贴相同的代码。上述链接包含一个具体示例。您可以在与检查登录用户相同的过滤器中执行此操作(如果有)。无论如何,在 JSP 文件中编写 Java 代码是一种不好的做法。

SSL(阅读:HTTPS 而不是 HTTP)仅用于防止中间人攻击,其中整个 HTTP 流量被某些恶意代理、路由器、病毒或网络流量中间的东西捕获和读取。任何潜在的敏感信息(例如提交的登录数据和检索到的响应)都会以明文形式显示给攻击者。SSL 将加密此流量,使其对攻击者不可读。它对缓存和身份验证没有任何作用。SSL 将在服务器级别配置,而不是在 webapp 级别。有关详细信息,请阅读服务器文档。例如,Tomcat 7.0.x的 Tomcat 7.0 SSL HOW-TO 。

于 2012-03-20T18:36:57.577 回答