Cookies 读取ColdFusion(HTTPS)中的跨域(跨子域)cookie

Cookies 读取ColdFusion(HTTPS)中的跨域(跨子域)cookie,cookies,coldfusion,cross-domain,subdomain,Cookies,Coldfusion,Cross Domain,Subdomain,我需要读取使用ColdFusion创建的cookie。我已经看到了很多关于如何使用CFCOOKIE在子域中创建cookie的信息,但是我不知道如何访问已经存在的cookie HTTPS会让这一切变得不可能吗 增编: 下面的勾选答案正确回答了上述问题。就我而言,它不起作用。我应该解释一下:sub1.domain.com上的cookie是由托管的第三方产品创建的,不是用coldfusion编写的,也不在我的控制之下。这真的很容易。创建cookie时,为其指定与域相同的域属性。需要记住的重要部分是,它

我需要读取使用ColdFusion创建的cookie。我已经看到了很多关于如何使用CFCOOKIE在子域中创建cookie的信息,但是我不知道如何访问已经存在的cookie

HTTPS会让这一切变得不可能吗

增编:
下面的勾选答案正确回答了上述问题。就我而言,它不起作用。我应该解释一下:sub1.domain.com上的cookie是由托管的第三方产品创建的,不是用coldfusion编写的,也不在我的控制之下。

这真的很容易。创建cookie时,为其指定与域相同的域属性。需要记住的重要部分是,它必须有一个前导点

<cfcookie name="mycookie" value="myvalue" domain=".mydomain.com" path="/" />

前导点告诉浏览器将cookie发送到mydomain.com的任何子域,其中包括sub.mydomain.com和blah.mydomain.com

然后,您可以从任何子域访问cookie,就像访问任何其他cookie一样:

<cfset thevalue = cookie.mycookie />

您应该将此作为支持旧浏览器的最佳实践

以下是RFC2109中的语句:HTTP状态管理机制可能会影响旧浏览器

“为了防止可能的安全或隐私侵犯,用户代理 如果…的值为,则拒绝cookie(不应存储其信息) 域属性不包含嵌入点或不以开头 一个点。”

我相信这是被RFC2965:HTTP状态管理机制覆盖的

“域=值可选。域属性的值指定 cookie对其有效的域。如果显式指定 值不以点开头,用户代理提供前导 圆点。”


这就解释了为什么它可能在现代浏览器中对你有用。我还是建议你加上它

事实上,我只是尝试了一下——当我这么做的时候,前导点不是必需的。HTTPS可以准备HTTP cookie,但不是相反,对吗?我刚刚尝试的测试是双向的。假设您只想将其限制为https,您可以指定secure=“true”前导点对于所有浏览器来说可能不是必需的,但对于某些浏览器可能是必需的。最好将其包括在内。由用户代理(浏览器)来确定缺少前导点是否意味着它应该包含子域,因此通过包含它来明确定义行为符合您的最佳利益。@Henry Cookies在HTTP和HTTPS之间工作良好,除非如jake所说,设置了安全属性。这只会告诉浏览器不要通过非TLS/SSL连接发送cookie。否则,将根据其域和路径设置发送cookie。