内联网域上的Cookie

Ken*_*att 8 cookies http

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

当我设置HTTP cookie时:

 Set-Cookie: user=kenny; expires=1245424860.11; Path=/; domain=franklin
Run Code Online (Sandbox Code Playgroud)

cookie没有设置.我试过以下没有运气.

.franklin
.franklin.local
franklin.local
.franklin.localdomain
franklin.localdomain
Run Code Online (Sandbox Code Playgroud)

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

mol*_*olf 7

RFC 2109说:

为防止可能的安全性或隐私侵犯,如果满足以下任何条件,则用户代理 拒绝 cookie(不得存储其信息):

  • Domain属性的值不包含嵌入点或不以点开头.
  • 请求主机的值与域属性不匹配.

并且:

域默认为请求主机.

如果您的主人是franklin:

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

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