从跨浏览器cookie中获取值


fetch values from cross browsers cookie

我们可以从跨浏览器Cookie获取值吗?例如,用户可以使用mozilla或chrome或任何其他浏览器

print_r($_COOKIE);

所有浏览器的Cookie将打印。

不,cookie只存储在一个浏览器的缓存中。如果您想保存特定于某台计算机的数据,则需要使用Flash对象或服务器端数据库

您将永远无法看到浏览器中设置的所有cookie。仅针对发送请求的域的那些。有关cookie和域策略的更多信息,请参阅此处。

所有启用cookie的浏览器将向PHP发送数据,这些数据被添加到$_COOKIE,假设cookie数据已设置…

也就是说,浏览器只会"提供"来自自身和当前域的cookie数据。它不能读取其他浏览器的cookie,也不能让你从其他网站获取数据。

你问的不是很清楚,所以这里有三个答案:

无论访问者使用什么浏览器,我如何使用cookie并让它们工作?

cookie是一个标准。您使用相同的HTTP头(或JavaScript)为所有浏览器设置它们,并且所有浏览器以相同的方式将它们发送到服务器。

如何访问切换浏览器前设置的cookie ?

当用户使用Chrome浏览器访问时,您无法读取(例如)Internet Explorer存储的cookie。Chrome无法访问Internet Explorer存储的cookie,因此无法将它们发送到服务器。

如何访问其他网站设置的cookie ?

您不能读取存储在不同域名的cookie,因为浏览器只会将属于给定网站的cookie发送到该网站(否则将需要大量带宽并且是一个可怕的安全问题)。

您的网站可以读取的唯一cookie是从同一域颁发给用户当前浏览器的cookie。

出于安全原因,浏览器只会将cookie信息发送到发布它的同一域。有时,它甚至被限制在一个特定的子域,而不是对整个站点有效。这是一件非常好的事情,因为cookie信息通常包含会话数据,这些数据可以(部分或全部)向cookie持有者提供访问网站帐户的权限。这被称为会话劫持。基本上,如果浏览器将你所有的cookie提供给每个请求它们的网站,恶意网站所有者可以通过使用该网站的cookie数据向他们发出请求来接管你在其他网站上的帐户。

此外,cookie对于创建cookie时用户正在使用的特定浏览器来说是本地的。这就是为什么如果你从Firefox登录你的Facebook帐户,如果你切换到Chrome,你将不得不再次登录。

简而言之,你所要求的是不可能的,而且是有充分理由的。