另一个网站的图像可以在我的网站上创建Cookie吗?

时间:2019-02-02 03:46:11

标签: html cookies cross-domain

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

当我访问我的网站时(至少在Google Chrome上),我注意到,如果单击URL旁边的信息按钮,则表明该网站上有cookie。如果我单击Cookie按钮,它会显示The following cookies were set when you viewed this page,并包含Cookie的列表,包括我用于图像托管的网站的列表。

如果我删除它们,它们会在一段时间后返回,但不会立即返回。我正在尝试避免cookie,因为该网站非常简单。他们被认为是我网站的一部分吗?如果是这样,除了我自己托管图像之外,我能做些什么?

尽管我总是直接链接到图像(例如,以.png结尾的链接),就像您自己托管图像一样,并且没有javascript运行(以保存Cookie)。

2 个答案:

答案 0 :(得分:2)

无论何时浏览器从服务器请求文件,它都会自动转发所有cookie数据以及请求。图片托管服务可能会将其用于不同的目的。

  

我总是这样,即使您直接链接到图像(例如,以.png结尾的链接),也就好像您自己托管图像一样,并且不会运行任何javascript(保存Cookie)。

问题是,他们如何设置这些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">
  

他们是否被视为我网站的一部分?

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

  

如果是这样,除了我自己托管图像之外,我能做些什么?

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

答案 1 :(得分:2)

  

他们被认为是我网站的一部分吗?

这取决于您的观点。

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

但是,出于隐私法(例如GDPR)的目的,它们被视为您网站的一部分,并且,如果第三方将其用于跟踪个人身份信息,则您需要跳过通常的GDPR规定

  

如果是这样,除了我自己托管图像之外,我能做些什么?

不是真的。

  

我总是这样,即使您直接链接到图像(例如,以.png结尾的链接),也就好像您自己托管图像一样,并且不会运行任何javascript(保存Cookie)。

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