寻找关于cookie和子域的一些输入,我已经阅读了[1] [2]和[3]。
如果我将Cookie的域名设置为“.live.example.com”
cookie是否可用于api.live.example.com?
我相信答案是肯定的。
该cookie是否可用于uat.example.com?
我相信答案是否定的。
将设置其他Cookie属性,这些属性应该是无关紧要的,但我会提到以防有人认为它们是相关的:
httpOnly - 已启用
安全启用
过期 - 会话结束
在什么条件下cookie不会被发送到api.live.example.com(网站有一个有效的SSL证书,如果有人建议网站不在SSL模式,因为设置了安全标志)?
为什么我会问第二个问题?
我之前已将Cookie设置为“.example.com”。 cookie没有通过XMLHTTPRequest(从www.example.com加载js)发送到api.example.com,但打开另一个浏览器选项卡并向api.example.com发送GET请求,发送cookie。因此,浏览器在这里做出一些决定。
我已经阅读过任何内容吗?
是的,我已经在stackoverflow上回顾了以下问题,并且还阅读了RFC6265第5.1.3和5.2.3节。我所读到的任何内容都表明这种方法不起作用:
[1]现有的stackoverflow问题 - Cookies子域 Share cookie between subdomain and domain
[2] RFC状态管理 - 域匹配 https://tools.ietf.org/html/rfc6265#section-5.1.3
[3] RFC状态管理 - 域属性 https://tools.ietf.org/html/rfc6265#section-5.2.3
答案 0 :(得分:1)
我可以确认我已经创建了一个测试用例来回答这些问题:
cookie是否可用于api.live.example.com?
答案是肯定的。
该cookie是否可用于uat.example.com?
答案是否定的。
如@CBroe所述,对于XMLHTTPRequests,withCredentials标志必须设置为true [1]。
而且,如果有人问这个问题,那么“www.example.com”
Cookie是否可以访问www.example.com?
希望从上一个问题/答案中可以看出这一点。
不,cookie将无法访问www.example.com
[1] XMLHTTPRequest withCredentials。
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials