我有一个静态网站,它只包含html
和css
。没有javascript
,没有php
,没有数据库。在这个网站上,我使用的是图片,这些图片来自图片托管网站(比如imgur)。
我注意到,当我访问我的网站(至少在谷歌Chrome上)时,如果我点击URL旁边的信息按钮,它会显示这个网站上有cookie。如果我点击cookie按钮,它会显示The following cookies were set when you viewed this page
,并有一个cookie列表,包括我用于图像托管的网站。
如果我删除它们,它们会在一段时间后返回,但不会立即返回。我尽量避免cookie,因为这个网站很简单。他们被认为是我网站的一部分吗?如果是的话,除了自己主持图片之外,我还能做什么吗?
我一直认为,如果你直接链接到一个图像(例如,在以.png
结尾的链接中),它将与你自己托管图像一样,并且不会运行javascript(保存cookie)。
他们被认为是我网站的一部分吗?
这取决于您的观点。
浏览器不认为它们是您网站的一部分。cookie是按域存储的,因此响应http://example.com
的图像请求而收到的cookie将属于http://example.com
,而不属于您的网站。
然而,出于隐私法(如GDPR)的目的,它们被视为您网站的一部分,如果第三方使用它们来跟踪个人身份信息,您需要跳过GDPR通常的障碍。
如果是的话,除了自己主持图片之外,我还能做什么吗?
不是。
我一直认为,如果你直接链接到一个图像(例如以.png结尾的链接),它将与你自己托管图像一样,并且不会运行javascript(保存cookie)。
Cookies通常是用HTTP响应头设置的,而不是用JavaScript设置的。
每当浏览器从服务器请求文件时,它会自动将任何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,您只能避免使用他们的服务。