2

在我网站上的登录代码中,如果密码和用户名正确,我设置了一个 cookie 以使用户保持登录状态。我刚刚从一个用户那里听说他不会通过浏览器自动接受 cookie,这会阻止他从登录。该 rhe cookie 未设置。

有没有简单的方法来对付它?告诉我你是否需要我使用的代码。

4

1 回答 1

1

如果您使用复杂的 javascript/ajax,则可以使其正常工作,但通常会很痛苦。

简而言之,不是将会话 ID 存储在 cookie 中,而是将其嵌入到每个链接的末尾。

所以

http://example.com/somepage.php

变成

http://example.com/somepage.php?SessionId=ABC123

不幸的是,虽然 PHP 在某些情况下可以为您执行此操作,但它对您在 javascript 中自己构建的链接没有帮助 - 只需单击没有 id 的单个链接即可有效地注销用户

请参阅此页面了解更多信息

正如 Quentin 在评论中提到的,如果您不使用 cookie 来识别创建会话的浏览器,则共享链接可能会共享会话。这可以通过检查 IP 地址/用户代理来缓解但不能阻止,但这在使用 NAT 和标准浏览器的大型企业环境中可能会失败

于 2013-04-30T11:34:10.750 回答