内联网域上的Cookie

时间:2009-06-19 20:22:46

标签: http cookies

我的办公室里有一台开发服务器,位于防火墙后面。主机名是富兰克林。我们将所有服务器命名为科学家或发明者。

当我设置HTTP cookie时:

 Set-Cookie: user=kenny; expires=1245424860.11; Path=/; domain=franklin

Cookie未设置。我试过以下没有运气。

.franklin
.franklin.local
franklin.local
.franklin.localdomain
franklin.localdomain

我是否必须将主机名设置为不同的主机名,还是可以通过我不知道的魔法设置此cookie?

2 个答案:

答案 0 :(得分:7)

RFC 2109说:

  

为了防止可能的安全或隐私侵犯,用户代理      拒绝一个cookie(不得存储其信息),如果有的话      以下是真的:

     
      
  • “域”属性的值不包含嵌入点或    不是以点开头。
  •   
  • 请求主机的值与域不匹配    属性。
  •   

还有:

  

域默认为请求主机。

如果你的主人是franklin

  • domain=.franklin的Cookie将被拒绝,因为它没有嵌入点。
  • domain=.franklin.local的Cookie将被拒绝,因为它与您服务器的实际主机名不符。

解决方案是将您的主机名重命名为franklin.localfranklin.<tld>,并相应地设置Cookie的domain属性(domain=.franklin.<tld>)。或者(如您所知),不要指定domain,并让用户代理回退到请求主机。

答案 1 :(得分:0)

您是否从正确的域中设置了Cookie?您应该访问http://franklin/以上的网站,否则它将无效(请参阅:相同的原始政策)。