2012-11-01 65 views
4

在應用程序上運行Symfony 2.1,我們擁有不同的沙箱代碼。例如。Symfony 2.1安全交叉子域

  • aequasi.someurl.com
  • dev.someurl.com
  • hotcarl.someurl.com

我似乎無法找出原因,但是當IM登錄到aequasi,和我去hotcarl,我需要重新登錄。當我這樣做時,它會將我從aequasi中註銷。

所有沙箱都使用相同的數據庫權威性

我有這個在我的config.yml

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

Ive得到了php.ini設置爲使用相同的URL也

此外, session_id是相同的

+0

所有3個站點的安全防火牆是否命名爲相同的東西? – theunraveler

+0

是的,他們都是一樣的 – Ascherer

+0

三個代碼分支是完全相同的,此刻。唯一不同的是url – Ascherer

回答

2

使用數據庫或內存作爲會話存儲。這使您可以跨三個不同的symfony應用程序(每個都有自己的沙箱)共享會話數據。這將消除應用程序緩存之間的不一致,並允許您使用* .domain.com類型的cookie。

Symfony2爲備用會話存儲提供了多種驅動程序。

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

+1

這個邏輯應該去哪裏? – Ascherer

+0

好,做了一些研究,不是很容易找到,但我用這個 http://hipaway.com/blog/symfony2-sessions-in-memcache/ – Ascherer

+0

有點過時壽,我想我會讓我自己博客文章和更新解決方案。謝謝你的幫助詹姆斯! – Ascherer