Day 137 - 浏览器指纹规避 · 练习与检查表
✅ 今日完成清单
- [ ] 理解浏览器指纹的构成:为什么删 Cookie 换 IP 仍被识别
- [ ] 掌握 Canvas 指纹原理:同设备稳定、跨设备唯一
- [ ] 理解指纹伪装的"自洽性"要求:稳定 + 与其他维度匹配
- [ ] 理解一致性风控:IP 归属地/时区/语言/UA 交叉验证
- [ ] 了解 undetected-chromedriver 的原理与局限
- [ ] 理解 TLS/JA3 指纹:requests 为何"零响应"被识别
- [ ] 掌握过 Cloudflare 的分层策略:挑战层 + 网络层 + 指纹层
📝 练习题
基础
1. 指纹维度盘点
列出你自己浏览器暴露的至少 8 个指纹维度,并按"稳定 / 易变 / 可被用户重置"分类。思考:哪些维度你重装系统后仍然不变?
2. 一致性校验扩展
给 code/02-fingerprint-consistency.py 的 check_consistency 增加两个检测项:
- UA 版本号与 sec-ch-ua 请求头是否矛盾
- IP 是数据中心 IP(给定 ASN 列表)而 UA 是普通家庭浏览器
用自己构造的 3 组正反例测试。
进阶
3. 伪装自洽性实验
修改 code/01-canvas-fingerprint.py:让伪装函数每次调用返回随机指纹,再写一个"风控端"检测函数,通过连续两次采集指纹是否一致来识破"指纹抖动"。解释为什么随机伪装比不伪装死得更快。
4. 三层防护决策器
扩展 code/03-cloudflare-bypass-flow.py 的 MockCloudflare:增加第 4 层"行为检测"(连续请求间隔 < 200ms 判为机器)。再扩展你的绕过方案(如增加随机延时),保证通过全部 4 层。
5. 方案选型报告
针对以下目标各写一段选型分析(工具 + 理由 + 风险):
- a) 站点只有 TLS 指纹检测,无 JS 挑战
- b) Cloudflare Managed Challenge + 高级机器人评分
- c) 站点用自研指纹 SDK,检测 Runtime.enable CDP 特征