来自其他网站的图像能否在我的网站上创建 cookie?

Can images from another website create cookies on my site?

我有一个静态网站,它只包含 htmlcss。没有 javascript,没有 php,没有数据库。在此站点上,我使用的是从图像托管网站(如 imgur)获取的图像。

我注意到当我访问我的网站时(至少在 Google Chrome 上),如果我点击 URL 旁边的信息按钮,它说有 cookie在这个网站上。如果我点击 cookies 按钮,它会显示 The following cookies were set when you viewed this page 并且有一个来自 cookies 的列表,包括来自我用于图像托管的那些网站。

如果我删除它们,它们会在一段时间后恢复,但不会立即恢复。我试图避免使用 cookie,因为该网站非常简单。它们是否被视为我网站的一部分?如果是这样,除了自己托管图像外,我还能做些什么吗?

我一直认为,如果您直接 link 到一个图像(例如 link 以 .png 结尾),它与您托管自己想象一下,就不会有 javascript 成为 运行(保存 cookie)。

每当浏览器从服务器请求文件时,它会随请求自动转发任何 cookie 数据。图片托管服务可能会将其用于不同的目的。

I always though that if you link to an image directly (as in a link ending in .png for example) it would be the same as if you were hosting the image yourself, and there would be no javascript being run (to save cookies).

那么问题来了,他们是如何设置这些cookie的?

比方说,您使用一个简单的 img 标签从主机加载图像。

<img src="imageHoster.tld/123xyz.png">

站点 imageHoster.tld 可以通过将所有请求重定向到例如requestHandler.php 并且该文件可以在使用简单的

发送图像之前设置 cookie
<?
setcookie("cookieName", "whateverValue", time()+3600);
header('content-type: image/png');
...
?>

那里发生的事情实际上与您将图像源设置成这样是一样的:

<img src="imageHoster.tld/requestHandler.php?img=123xyz">

Are they considered part of my site?

由于这些所谓的第三方 cookie 是在访问您的网站时设置的,因此可以将它们视为您网站的一部分。为了安全起见,我至少会在数据隐私声明中提及第三方服务的使用。

If so, is there anything I can do, except hosting the images myself?

可以在客户端浏览器中禁用第三方 cookie。但是您不能为您网站的访问者禁用它们。所以不,为了避免第三方在访问您网站的客户端浏览器上设置 cookie,您只能避免使用他们的服务。

Are they considered part of my site?

这取决于你的观点。

浏览器 不认为它们是您网站的一部分。 Cookie 以 per-domain 为基础存储,因此响应来自 http://example.com 的图像请求而收到的 Cookie 将属于 http://example.com 而不是您的网站。

但是,出于隐私法(如 GDPR)的目的,它们被视为您网站的一部分,如果第三方使用它们来跟踪个人身份信息,您需要跳过通常的GDPR 圈。

If so, is there anything I can do, except hosting the images myself?

不是真的。

I always though that if you link to an image directly (as in a link ending in .png for example) it would be the same as if you were hosting the image yourself, and there would be no javascript being run (to save cookies).

Cookie 通常使用 HTTP 响应设置 headers,而不是 JavaScript。