如何在java中过期会话?

时间:2010-12-22 01:23:03

标签: java session servlets

如果他成功登录并试图对我的网站造成伤害,我希望用户会话到期,如果我检测到攻击,我会将他重定向到错误页面,并希望将会话过期。如何制作它?

2 个答案:

答案 0 :(得分:3)

会话有一个无效方法。

session.invalidate();

查看API

http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.6/api/javax/servlet/http/HttpSession.html

你可能想要做的不仅仅是注销用户;也许禁用帐户,记录事件等...

要使用户进入错误页面,您可以使用转发或重定向。如果有意义,你应该使用

response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Stop doing bad things");

结帐

http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.6/api/index.html

答案 1 :(得分:0)

你可以使他的会话无效,但这还不够。如果这就是你所做的一切,他可以立即再次登录以创建一个新会话。或者删除他的会话cookie并重新开始。

您还必须完全禁用或删除其帐户,或删除允许他执行您要阻止的任何操作的访问权限。 (在极端情况下,您可能还需要根据IP地址等开始阻止访问。)

  

但我怎么能阻止他回到他已经在的页面。

您无法阻止他使用“返回”,或从浏览器历史记录中重新输入网址,或者在导航栏中输入该网址。

您需要做的是阻止他从服务器获取页面。如果他没有登录,或者他没有相关的访问权限,则每当他尝试查看页面时,您的服务器都应以“未授权”或“权限被拒绝”状态代码进行响应...或执行其他请求不应该被允许。

不要仅仅依靠阻止他看到该页面。您还需要对可以从页面发出的请求实施服务器端访问控制。