javascript:允许用户在会话超时后登录

时间:2015-08-07 17:17:27

标签: javascript php html session logout

我想为我的html网页编写一个javascript程序,强制用户在离开会话空闲x分钟(没有鼠标移动或按键)后重新输入密码以恢复会话。

请注意,我不是在谈论在时间结束时销毁会话/关闭会话,而是强制用户注销。我只是试图通过弹出框来“暂停”会话,用户必须输入用户名和密码才能恢复工作。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用

var timeoutHolder=setTimeout(pauseSession,60000*nMinutes);

然后每次用户按键时重置时间

window.addEventListener("keydown", function(e){
    clearTimeout(timeoutHolder);
    var timeoutHolder=setTimeout(pauseSession,60000*nMinutes);
});

您还可以创建类似的事件来检测鼠标移动。最后,只需定义一个显示弹出窗口的pauseSession函数。

关于安全性的一些想法:您应该考虑到在客户端执行的任何此类措施都很容易规避,因此只有在不暗示安全风险的情况下才应该使用。

更复杂的版本是向服务器发送消息并在那里跟踪定时器,因此用户无法改变它。但是,用户可以发送假击键和键移动,因此它仍然是一个易受攻击的解决方案。

TL; DR:客户端中的所有内容都要更改。在客户端中检测到键和鼠标移动,因此考虑到用户将始终能够禁用您的密码提示。自上次页面加载或xmlhttprequest以来的分钟可能是更好的度量,因为它可以在服务器中完全实现。