每6小时强制一次会话超时

时间:2010-10-06 17:55:58

标签: architecture tomcat

营销人员向我提出要求每6小时超时一次,无论网站上的用户活动如何。

据我所知,如果用户离开计算机一段时间(现在设置为30分钟),会话应该超时,但强制用户在一段时间后才能登录对我有意义

他的理由是,如果一个人在网站上登录了6小时,那很可能就是机器人。

这是有效请求吗?

-Ken

3 个答案:

答案 0 :(得分:2)

这似乎是决定何时杀死会话的一种非常随意和无效的方式。发现我能想到的机器人的唯一有效方法是跟踪每个会话的路径以确定活动是否可疑,但即使这样也是浪费时间。我会说这是一个无效的请求,或者至少是一个无效的方法。

OWASP正在成为安全行业的标准。以下是会话管理链接以获取进一步的建议:http://www.owasp.org/index.php/Session_Management

答案 1 :(得分:0)

我认为最好的做法是facebook.com如果您对应用程序似乎有疑问会怎么做。它会向您显示一个包含某些人的页面,并要求您在短时间内说明您的朋友。 本课程是使用一些业务(您的网站活动)相关控件来查找机器人。逻辑解决方案总是比简单的技术解决方案更好。这就是为什么我没有建议使用CAPTCHA,每次生成页面时为HTML元素生成随机ID和名称......

答案 2 :(得分:0)

要在不管用户活动的情况下关闭会话,请使用SessionListener并在会话创建为会话属性时记录时间戳。

然后使用(请求)Filter检查当前时间是否小于6小时加上初始记录的时间戳。如果没有,session.invalidate()

要在21600秒后强制重新加载页面(不要单独使用它,如果要执行此操作,请始终关闭服务器中的会话,因为这在客户端浏览器中运行):

<meta http-equiv="refresh" content="21600">
  

这是有效请求吗?

当然,营销人员总是发出有效请求。

问候。