php – Symfony 2.1安全交叉子域

在应用程序上运行Symfony 2.1,我们有不同的代码沙箱.例如.

> aequasi.someurl.com
> dev.someurl.com
> hotcarl.someurl.com

我似乎无法弄清楚为什么,但当我登录aequasi,我去hotcarl,我需要再次登录.当我这样做时,它让我退出了aequasi.

所有沙箱都使用相同的数据库进行身份验证

我在config.yml中有这个:

framework:
    session:
        cookie_domain: .someurl.com
        domain:        .someurl.com

我已经将php.ini设置为使用相同的URL

另外,session_id也是一样的

最佳答案 使用数据库或内存作为会话存储.这允许您跨三个不同的symfony应用程序(每个应用程序都有自己的沙箱)共享会话数据.这将消除应用程序缓存之间的不一致,并允许您使用* .domain.com类型的cookie.

Symfony2为备用会话存储提供了几个驱动程序.

http://symfony.com/doc/current/components/http_foundation/session_configuration.html#custom-save-handlers

点赞