PHP会话ID不会粘在Safari中

时间:2010-08-05 22:41:34

标签: php safari session

PHP有什么理由以绝对随机的间隔向Safari浏览器提供新的会话ID?

PHPSESSID cookie是否可以在客户端到期? 或者其他更复杂的东西?

3 个答案:

答案 0 :(得分:3)

Safari的设置仅允许来自正在访问的网站的Cookie。如果您的数据库或Web服务位于另一个框中,它将阻止cookie,因此会话将不会保存...

答案 1 :(得分:0)

在php.ini文件中,您有配置选项

session.use_only_cookies

如果设置为true,PHP将仅使用cookie来跟踪会话。

如果浏览器禁用了cookie,则PHP有一个使用get的回退方法。

因此,如果您将此选项设置为false,如果您的Safari已禁用Cookie,则会话也会有效。

然而,这有一个安全缺陷。复制URL并将其发送给朋友的某些用户可能会使用URL复制SID字符串,从而向他们的朋友显示他们的会话。如果仅将SID存储在cookie中,则不会发生这种情况。

关于会话的持续时间,请查看 session.gc_maxlifetime 配置选项:

  

session.gc_maxlifetime指定   数据之后的秒数   将被视为“垃圾”并清理干净   起来。垃圾收集发生在   会议开始。

答案 2 :(得分:0)

session_set_cookie_params(0, "/");

之后添加session_start();

反斜杠使会话在Safari中为我工作。