我正在开发一个金融网络应用程序。
有一个客户端要求,如果用户已登录并且已经在浏览该应用程序。如果他将浏览器 url 复制并粘贴到另一个窗口。在另一个窗口中,用户应该被注销。
我知道 http 是无状态的,并且没有内置的浏览器机制(cookie 等)来解决它,这需要仅通过编程来实现。我想人们已经解决了这个问题。您知道解决此问题的可能解决方案吗?
可悲的是,没有解决方案。
浏览器会保留您打开的所有选项卡和窗口的 cookie 和所有用户信息。一旦您关闭浏览器的所有选项卡和窗口,它就会清除数据(例如在会话结束后要求删除的 cookie)。请注意,如果用户使用其他浏览器,您想要的行为将得到尊重——浏览器不会(还没有?)共享此类信息。
用代码根本不可能解决问题,您必须找到解决方法。
作为一名研究人员,我见过其中一种解决方案:在 HTTP_REFERER(Apache 环境变量)上取消用户身份验证。只要引用者不是应用程序本身(登录表单除外),用户就会被取消身份验证。但请注意:Referer 是浏览器发送的信息。并且浏览器发送的任何信息都不应该被信任:)。如果您只想使用 Javascript,建议仍然存在。你会发现有人使用 JS-disabled-browser 绕过你的验证。
这就是为什么应用程序开发还没有死;)
干杯。K。