你如何在prod,staging和dev环境之间沙盒cookie?

时间:2015-10-09 19:05:14

标签: security cookies

我们在多个子域中有几个Web应用程序,app1.company.com,app2.company.com。此外,我们有多个环境,prod,staging,dev1,dev2

每个环境的所有服务都使用应用程序名称末尾的-ENV来区别于其他服务。例如

  • app1.company.com
  • app2.company.com
  • app1-staging.company.com
  • app2-staging.company.com
  • app1-dev1.company.com
  • app2-dev1.company.com

除了我们想要开始在环境中共享cookie之外,这不是问题。这意味着cookie必须将其域名设置为.company.com。哪会破坏我们的沙盒。另一种方法是将环境添加到cookie名称前面,但这看起来像是一个kludge,并没有提供真正的安全性。

所以问题是人们如何设置他们的prod,staging和dev环境,以便cookie相互沙盒化。

1 个答案:

答案 0 :(得分:3)

使用不同的域名。您已经正确地指出将cookie域设置为'company.com'将在所有域上共享它们而不仅仅是一些域。

您可以更改代码以设置/侦听不同环境中的不同Cookie,但如果您的请求中包含大量虚假Cookie,则仍可能使调试/诊断变得困难。

因此请使用不同的域名:

app1.company.com  cookiedomain=.company.com
app2.company.com

app1.staging-company.com  cookiedomain=.staging-company.com
app2.staging-company.com

app1.dev-company.com      cookiedomain=.dev-company.com
app2.dev-company.com

设置其他域很容易,您可能需要额外的SSL证书费用,但通常不会很重要。 '。'在cookie中设置的域名之前很重要。