虽然它可能不经常发生,但可能会发生UserA登录并具有活动会话.然后UserB拿起笔记本电脑,想要使用同一个网站.在PHP中可以测试这个并允许它或每个会话一个用户.
我遇到的示例是在测试时我已经有userA登录到他们的个人资料,然后对于userB我点击了一个链接来重置他们的密码,但是我没有点击密码重置页面而是被重定向到userA的个人资料页面.这就是我对其进行编码的方式,但我想知道如果家人在笔记本电脑上使用这些日子,我是否应该设计一种方法来为每个人提供他们自己的会话,例如电子邮件链接?
编辑:我决定放弃这个想法.我会留给用户保护他们的会话.
我只是发布这个来展示它是如何可能的,但我强烈建议你永远不要尝试使用这种技术.它打开了整个世界的安全问题,您可以为用户提供的任何轻微便利将被它所导致的问题彻底消灭.
话虽这么说,您可以使用PHP trans_sid("透明会话ID")支持,其中会话ID自动嵌入到URL和隐藏的表单字段中.这将允许您打开多个窗口,每个窗口都有自己的会话,窗口之间没有共享.
基本上,您将关闭基于cookie的会话并仅使用透明ID:PHP将自动修改<a href="...">以将会话ID参数添加到查询字符串中,并根据需要插入隐藏的表单字段.它不适用于JS代码等,但您可以在那里添加ID.
但是,问题在于:现在会话ID已嵌入到URL和表单中,为您网站上的页面添加书签会将该书签绑定到当时正在使用的特定会话.剪切粘贴网址以分享内容也会将用户的会话传送给他们发送链接的人.从您的站点单击任何指向外部世界的链接将传输会话ID作为引用者的一部分.例如,你刚刚将会话劫持完全琐碎,因为用户每次做任何事情时都会从屋顶大喊大叫他们的会话ID.
更简单的解决方案:使用浏览器的"色情模式",这样每个窗口都有自己的cookie存储空间,将每个用户的窗口/会话与其他窗口/会话分开.
| 归档时间: |
|
| 查看次数: |
1658 次 |
| 最近记录: |