在我网站上的登录代码中,如果密码和用户名正确,我设置了一个 cookie 以使用户保持登录状态。我刚刚从一个用户那里听说他不会通过浏览器自动接受 cookie,这会阻止他从登录。该 rhe cookie 未设置。
有没有简单的方法来对付它?告诉我你是否需要我使用的代码。
如果您使用复杂的 javascript/ajax,则可以使其正常工作,但通常会很痛苦。
简而言之,不是将会话 ID 存储在 cookie 中,而是将其嵌入到每个链接的末尾。
所以
http://example.com/somepage.php
变成
http://example.com/somepage.php?SessionId=ABC123
不幸的是,虽然 PHP 在某些情况下可以为您执行此操作,但它对您在 javascript 中自己构建的链接没有帮助 - 只需单击没有 id 的单个链接即可有效地注销用户
请参阅此页面了解更多信息
正如 Quentin 在评论中提到的,如果您不使用 cookie 来识别创建会话的浏览器,则共享链接可能会共享会话。这可以通过检查 IP 地址/用户代理来缓解但不能阻止,但这在使用 NAT 和标准浏览器的大型企业环境中可能会失败