Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “如何安全地刷新”;“最后一次见到”;用户数据库中的记录_Javascript_Php_Security_Zend Framework2 - Fatal编程技术网

Javascript “如何安全地刷新”;“最后一次见到”;用户数据库中的记录

Javascript “如何安全地刷新”;“最后一次见到”;用户数据库中的记录,javascript,php,security,zend-framework2,Javascript,Php,Security,Zend Framework2,我试图设计一个ZF2应用程序的特定模块,该模块显示当前在线的用户 我的想法: 在数据库中有一个lastSeen列。要显示当前联机的用户列表,只需按时间戳搜索(例如:当前时间的90秒) 如果用户已登录,我计划设置一个事件侦听器,以便在控制器调度完成后,更新当前用户的lastSeen字段。当他们注销时,它将清除lastSeen字段 当用户空闲时,我计划使用JavaScript每隔60秒左右轮询服务器,以确保记录不断刷新 三个问题: 这样行吗?(若否,原因为何?) 你能看到任何潜在的安全漏洞吗 对于J

我试图设计一个ZF2应用程序的特定模块,该模块显示当前在线的用户

我的想法: 在数据库中有一个
lastSeen
列。要显示当前联机的用户列表,只需按时间戳搜索(例如:当前时间的90秒)

如果用户已登录,我计划设置一个事件侦听器,以便在控制器调度完成后,更新当前用户的
lastSeen
字段。当他们注销时,它将清除
lastSeen
字段

当用户空闲时,我计划使用JavaScript每隔60秒左右轮询服务器,以确保记录不断刷新

三个问题:

  • 这样行吗?(若否,原因为何?)
  • 你能看到任何潜在的安全漏洞吗
  • 对于JavaScript,是否需要某种csrf保护?如果是这样的话,我应该如何处理

  • 我非常关心安全性,所以我真的很想知道我在这里缺少的任何东西是否会打开安全漏洞。

    Javascript刷新不是强制性的:
    lastSeen
    是一个时间戳,因此您可以计算一个限制,超过该限制,用户将不会被视为在线。

    True,但我希望尽可能保持列表的最新状态。如果lastSeen字段的长度超过,比如说5分钟,如何确定这是因为他们在页面上但未处于活动状态,还是因为他们离开了站点?使用JavaScript,我们至少可以知道他们是否仍在积极浏览该网站。我不同意。:)使用JS,您无法判断用户是否发起了请求。你甚至不知道他是否在屏幕前。您知道您的用户只有在单击链接时才处于活动状态,因此变量的名称为
    lastSeen