【问题标题】:ie9 symfony and subdomainie9 symfony 和子域
【发布时间】:2013-02-10 21:53:24
【问题描述】:
  • 浏览器:IE 9
  • 框架:Symfony 1.2
  • 插件:sfguard

例子:

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

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

第一种情况:打开ie,进入主域(用户未登录),然后打开一个新标签,进入子域。

第二个场景:打开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!其中一个对应于主域!!!好像主域 cookie 覆盖了子域 cookie!!!

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

symfony=9r0bqkmb29gqbe8pnhmae1rsj6;
symfony=drub66g3jlv16ukp1vf00hei42;

看起来这行得通,因为先发送子域 cookie!

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

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

【问题讨论】:

    标签: internet-explorer cookies symfony1 subdomain


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-08-23
      • 2011-02-28
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      相关资源
      最近更新 更多