1
  • 浏览器:IE 9
  • 框架:Symfony 1.2
  • 插件:sfguard

例子:

  • 主域:domain.com
  • 子域:subdomain.domain.com

当您打开 ie 时,转到 mainDomain,登录,然后转到子域,您已经登录,我不希望这样,我已经修复了它,将会话保存在不同的位置(session_save_path)。所以这是我的主要问题:

第一种情况:打开即进入主域(用户未登录),然后打开一个新选项卡,进入子域。

第二种情况:打开ie,转到subdoamin,然后打开一个新选项卡,转到mainDomain。

当用户尝试使用子域登录时: 第一种情况:用户无法登录,应用程序重定向到登录页面。第二种情况:用户可以登录。

我使用 Fiddler 看到的是:第一个场景:域:

**Response** sent xxx bytes of Cookie data:
    Set-Cookie: symfony=drub66g3jlv16ukp1vf00hei42; path=/

子域:

**Request** sent xxx bytes of Cookie data:
symfony=drub66g3jlv16ukp1vf00hei42;

尝试登录时:

Response sent xxx bytes of Cookie data:
    Set-Cookie: symfony=9r0bqkmb29gqbe8pnhmae1rsj6; path=/

重定向到主页:

Request sent xxx bytes of Cookie data:

symfony=drub66g3jlv16ukp1vf00hei42;
symfony=9r0bqkmb29gqbe8pnhmae1rsj6;

请注意,最后一个请求是两次发送相同的 cookie!其中一个对应于主域!!!好像 mainDomain cookie 正在覆盖子域 cookie !!!

但在第二种情况下,cookie 是按以下顺序发送的:请求发送 xxx 个字节的 Cookie 数据:

symfony=9r0bqkmb29gqbe8pnhmae1rsj6;
symfony=drub66g3jlv16ukp1vf00hei42;

看起来这很有效,因为首先发送了子域 cookie!

我已经看到 ie 在子域中存在下划线问题,但这不是我的情况,我还设置 ie 接受所有 cookie,并且对于我所做的每个测试,首先我清除所有 cookie 和缓存。

我知道 symfony 1.2 很旧,但现在我无法迁移到 symfony 2,我认为这不是 symfony 的问题,而是 ie。

4

1 回答 1

0

我在 Silex(它使用 symfony 会话组件)中遇到了类似的问题,快速修复只是以不同的方式命名两个会话 cookie。似乎 IE 对域不同级别的 cookie 的处理方式与其他客户端不同。

于 2013-09-03T20:17:25.897 回答