7

我熟悉使用 阅读 cookie php,但如果有一种方法可以读取由另一个 3rd 方网站(即不是您自己的网站)设置的用户浏览器 cookie,我正在徘徊。

可以编写这样的东西来查看所有用户设置的 cookie 吗?

print_r($_COOKIE);

4

5 回答 5

8

不,这是不可能的。

您只能读取来自您自己域的 cookie。其他 cookie 甚至不会发送到您的服务器。

如果您可以读取用户拥有的每个 cookie,您将能够获取个人信息,例如他们的 Facebook 密码、与他们的银行的连接等。

这将严重侵犯隐私,因此,浏览器不会发送来自同一域的 cookie。

于 2013-07-15T20:56:54.397 回答
3

当您访问一个网站时,您的网络浏览器会从该域 ( somedomain.com) 请求信息,并且允许该第三方域设置 cookie。每个域只能读取它创建的 cookie,因此anotherdomain.com无法访问由somedomain.com.

于 2013-07-15T21:04:07.143 回答
2

要读取 cookie,您必须匹配最初创建 cookie 的域。浏览器认为这是一项安全原则,不会让网站访问他们没有创建的任何 cookie。

请注意,还有其他几个可能会规避此规则的安全注意事项,例如DNSMasq与欺骗性浏览器证书的结合。这就是为什么 DNSSec(和 SOPA)如此热门的原因;安全漏洞 DNSSec 插件还将保护您的 cookie 从您的 cookie 罐中被盗。

过去有安全漏洞泄露的真实例子。有关2008 年甚至不同的安全漏洞的示例,请参见此处。

于 2013-07-15T21:04:07.983 回答
1

不,这是不可能的,因为浏览器只发送由您的域设置的 cookie,通常,如果之前由域设置,它会附加到 HTTP 请求的标头。

第三方 cookie 是在目标域的上下文中由另一个域设置的那些 cookie,例如:在打开 example.com 时,它可能有来自另一个网站 (example2.com) 的横幅,在这种情况下,如果 example2.com 设置cookie 无法被 example.com 读取,因为它们来自不同的来源,浏览器甚至阻止脚本访问它。

于 2013-07-15T20:57:02.273 回答
0

不,当然不是。否则你的网站会知道我银行的登录 cookie,你就可以偷走我所有的钱。Cookie 仅对设置它们的域可用。

于 2013-07-15T20:57:15.913 回答