首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全漏洞问题

安全漏洞问题
EN

Stack Overflow用户
提问于 2015-08-13 21:21:44
回答 3查看 29关注 0票数 0

客户端希望添加允许一个用户一次只能登录一个位置的功能。例如,如果我以maria.nausal@gmail.com登录,则软件不允许我在不同浏览器或不同系统的同一系统中使用相同的电子邮件帐户登录。

我是通过更新用户状态来处理这个功能的,但是当用户在没有注销的情况下关闭浏览器按钮时,这个功能就不起作用了。

然后我使用onbeforeunload事件来处理这种类型的问题。在台式机上一切正常,但此事件在移动设备上不起作用。通过使用Onbeforeunload,

如果您有其他解决方案,在所有环境下,请建议我。解决方案应该是使用会话,因为onbeforeunload也会产生问题。

谢谢你

EN

回答 3

Stack Overflow用户

发布于 2015-08-13 21:28:43

您的第二种方法也不适用于网络连接失败、断电或用户简单地关闭笔记本电脑盖的情况。整个方法是不稳定的,因为它与底层的无状态web技术发生了冲突。没有办法清楚地确定会话是否仍在使用,因为存在永久连接,但只有一个请求。

您所能得到的最接近的方法是在一段时间不活动后使会话超时。为了不破坏用户体验,你应该注意在后台无缝地重建/重新激活会话,而不需要任何用户交互。

票数 0
EN

Stack Overflow用户

发布于 2015-08-13 21:28:50

我不认为有一种万无一失的方法来做你想做的事情。其他网站(例如银行网站)做的是记录你最后一次活动的时间。然后,在最后一次活动后的一段时间内,它们会自动在服务器端注销您。

票数 0
EN

Stack Overflow用户

发布于 2015-08-13 21:39:44

在数据库中添加一个字段,用于唯一标识浏览器、计算机等(例如IP地址),并在用户登录时记录下来。然后检查它是否在用户每次导航到新页面时都相同。因此,如果用户先登录到计算机A,然后再登录到计算机B,则下次他们导航到计算机A上的新页面时,它会看到计算机B是最后一个登录并注销计算机A的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31989495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档