我的办公室里有一台开发服务器,位于防火墙后面.主机名是富兰克林.我们将所有服务器命名为科学家或发明家.
当我设置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?
RFC 2109说:
为防止可能的安全性或隐私侵犯,如果满足以下任何条件,则用户代理 拒绝 cookie(不得存储其信息):
- Domain属性的值不包含嵌入点或不以点开头.
- 请求主机的值与域属性不匹配.
并且:
域默认为请求主机.
如果您的主人是franklin
:
domain=.franklin
将被拒绝,因为它没有嵌入点.domain=.franklin.local
将被拒绝,因为它与您服务器的实际主机名不匹配.解决方案是将主机名重命名为franklin.local
或相应地franklin.<tld>
设置domain
cookie 的属性(domain=.franklin.<tld>
).或者(如您所知),不要指定domain
,并让用户代理回退到请求主机.
归档时间: |
|
查看次数: |
2982 次 |
最近记录: |