网站屏蔽Cloudflare cf使用workers搭建的反代爬虫bot,REMOTE_ADDR header头部禁止 2a06:98c0:3600::103 ipv6地址,非真实浏览器禁止访问
方法一:检测REMOTE_ADDR或X_FORWARDED_FOR
服务器检测 REMOTE_ADDR 或者 X_FORWARDED_FOR 字符串的header头部信息,匹配ip为 2a06:98c0:3600::103 则屏蔽,如果后续workers更换服务器ip则会屏蔽失败。
- 原理:这些头部通常包含发起请求的客户端IP地址。如果服务器的IP地址发生变化,这种方法将失效。
- 优点:简单直接。
- 缺点:依赖于服务器的IP地址,不够灵活。
方法二:检测CF_WORKER头部
服务器检测 CF_WORKER 头部信息,如果有这个头,可以百分百确认是workers,可直接屏蔽,该头部内容为workers绑定的自定义工作域名。
- 原理:Cloudflare Workers在请求中会添加一个特定的
CF-Worker
头部。 - 优点:准确度高,可以确保只屏蔽Workers的请求。
- 缺点:需要确保服务器配置正确以识别和处理这个头部。
方法三:检测COOKIE头部
服务器检测 COOKIE 头部信息,如果值字段内包含xxxxx_lang=zh字样,有大概率是workers。
- 原理:通过检查请求中的Cookie来判断是否来自Workers。
- 优点:在某些情况下可能有效。
- 缺点:不够准确,因为Cookie可以被篡改或不存在。
方法四:检测CDN_LOOP头部
服务器检测 CDN_LOOP 头部信息,如果有这个头,可以用来判断workers,该头内容固定为 cloudflare; subreqs=1 对比正常浏览器访问会额外多出一个subreqs=1字段。
- 原理:Cloudflare Workers在请求中会添加一个
CDN-Loop
头部。 - 优点:准确度高,可以确保只屏蔽Workers的请求。
- 缺点:可能与其他CDN服务产生冲突或误判。
方法五:检测CF_EW_VIA头部
服务器检测 CF_EW_VIA 头部信息,如果有这个头,可以用来判断workers,该头内容固定为 15
- 原理:Cloudflare Workers在请求中会添加一个
CF-EW-Via
头部。 - 优点:准确度高,可以确保只屏蔽Workers的请求。
- 缺点:可能与其他Cloudflare服务产生冲突或误判。
方法六:检查浏览器正常头部信息
检查浏览器正常头部信息,workers不会传递以下浏览器产生的访问头部
- 原理:通过分析标准的浏览器头部信息来区分Workers请求。
- 优点:可以作为一种额外的检测手段。
- 缺点:不够准确,因为头部信息可以被伪造。
SEC_FETCH_DEST = document
SEC_FETCH_USER = ?1
SEC_FETCH_MODE = navigate
SEC_FETCH_SITE = none
SEC_CH_UA_PLATFORM = "Windows"
SEC_CH_UA_MOBILE = ?0
SEC_CH_UA = "Chromium";v="104", " Not A;Brand";v="99", "Microsoft Edge";v="104"
总结
每种方法都有其优缺点,可以根据具体需求和场景选择适合的方法。通常情况下,结合多种方法可能会更加有效和准确。同时,需要注意的是,这些方法可能会受到Cloudflare或其他服务的更新而失效,因此需要定期检查和更新策略。