http - 如果我禁用 cookie,网站还能跟踪我吗?
问题描述
假设我将浏览器配置为阻止所有 cookie 并禁用本地存储。一个聪明的网站还能以某种方式将我的所有活动与一个持久的唯一标识符(例如会话 ID)相关联吗?
解决方案
是的,绝对存在 cookieless 跟踪。
浏览器指纹识别是一种众所周知的技术。网页可以收集诸如浏览器的用户代理字符串、时区、屏幕分辨率、已安装字体列表或WebGL 图像渲染等信息,以创建您无法查看或控制的稳定唯一标识符。您可以在此处或此处测试您的浏览器是否易受攻击。您可能想尝试在常规浏览窗口和隐身窗口中加载它们,以查看指纹是否保持稳定。特别是像 Firefox 和 Safari 这样的浏览器试图减轻各种跟踪。
假设你也禁用了 JavaScript 和 WebGL,网站可以通过滥用 HTTP 的功能在你的浏览器缓存中隐藏一个唯一标识符。我知道这三种技术。因为它们在文字中有点难以解释,所以我制作了一些动画来解释它们(从 02:42 左右开始)。这些技术是:
- ETag 跟踪- 网页向跟踪 URL 发出 Ajax 请求,服务器包含随机
ETag
响应标头。这是您的唯一 ID。下次网页向跟踪 URL 发出 Ajax 请求时,您的浏览器将在请求标头中包含 ID ,从而允许跟踪 URL 在响应标头If-None-Match
中再次反映它。ETag
- Last-Modified 跟踪- 与上面类似,但带有随机时间戳,浏览器稍后将在请求标头
Last-Modified
中反映。If-Modified-Since
- 永久重定向跟踪
?id=12349876
- 跟踪 URL 使用随机查询字符串参数(如包含)生成对其自身的永久重定向。?id=12349876
您的浏览器将缓存重定向并下次直接转到。
存在一些针对基于缓存的跟踪技术的缓解措施。Privacy Possum 浏览器扩展可防止基于 ETag 的跟踪。
推荐阅读
- python - 从 jira 到 markdown 格式的 Python 正则表达式文本
- flutter - Erro Flutter VsCode 终端
- c# - 如何获取 UWP ListView 中文本和其他元素的像素位置?
- c - 考虑到硬件限制和使用限制的 IEEE 754 符合 sqrtf() 实现
- flutter - 使用简单代码时,无法将参数类型“JsObject”分配给参数类型“BuildContext”
- javascript - GSAP scrollTrigger - 仅动画被触发的元素
- r - 如何随机选择带有gghighlight的行之一并突出显示?
- c++ - c++凯撒密码解码麻烦
- c# - 使用 UWP、.NET Core v2.0.3 和 C# v7.3 从 C# 方法调用 F# 可区分联合?
- python - PermissionError:使用 sudo 运行 os.chmod() 时出现异常。蟒蛇3 3