跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • cloudflare 是怎么知道我用 requests 的?
未分類
15 3 月 2020

cloudflare 是怎么知道我用 requests 的?

cloudflare 是怎么知道我用 requests 的?

資深大佬 : freshgoose 88

我通过代理访问一个网站,在流览器访问(隐身模式+禁止 JS )没问题,可以拿到 html,用 requests.get 就 403 了,显示了 cf 的页面,提示我要滑验证码。

但是我明明把 headers 都凑齐了(通过 Network 把 requests header 一个个复制出来的),跟浏览器用的一个代理,怎么偏偏 requests.get 就 403 了呢?

那个网址是:aHR0cHM6Ly93d3cuYXJ0c3RhdGlvbi5jb20vYXJ0d29yay84bEQ0blE=

大家有空可以研究一下,我实在搞不懂。

大佬有話說 (22)

  • 資深大佬 : shylockhg

    不太懂,代理做的是转发吧,http 头有字段会声明客户端( request )

  • 資深大佬 : wangxiaoaer

    cookie 呢?抓包对比呗。

  • 資深大佬 : ZeroClover

    https://sm.ms/image/MVqWXUfg52E18CJ

    这个网站用了 Cloudflare Bot Management

    用 cURL 之类的访问,即使模拟了各种 Header 和 UA,在 CF 后台也仍然可以看到 knownBotClientHelloExtensions 这种标识

  • 主 資深大佬 : freshgoose

    @shylockhg #1 感谢回复,应该是没有声明客户端的,这是我同一环境下请求 httpbin 的结果: https://pastebin.com/b27uaKvW

  • 主 資深大佬 : freshgoose

    @ZeroClover #3 感谢回复,那为什么我用:同样的 IP + 浏览器隐身模式 + 禁止 JS 又能访问呢,按理来说这样子一搞,跟直接用 requests.get 也没啥区别了吧

  • 資深大佬 : chinvo

    @freshgoose #5 cookie

  • 資深大佬 : ZeroClover

    @freshgoose 我只是客户,不是 CF 的人,他们也不会详细告诉我怎么实现的。

    https://sm.ms/image/xlyEC82cPtqz51L

    就他们的说法,Bot Management 会通过 JS 来识别 Bot,如果禁止 JS 只是识别率下降,但是那是针对无头浏览器,一般的什么 requests 还是识别率很高

  • 資深大佬 : chinvo

    @freshgoose #5 还有后续请求

    curl 不会在加载页面之后继续加载引入的资源

    总之,很多行为上的差异

  • 資深大佬 : lance6716

    很多方式,比如让你 5 秒内暴力算一个 js 程序,能算出来的才是有计算资源的浏览器

  • 資深大佬 : yinanc

    @lance6716 啥浏览器这么智能?还能服务器让你做啥就做啥?

  • 資深大佬 : WordTian

    ua?我记得 requests 的 ua 会带一些

  • 資深大佬 : WordTian

    ua?我记得 requests 的 ua 会带 requests 的信息,没

  • 資深大佬 : WordTian

    @WordTian 没打完发出去了,两次。。。

  • 資深大佬 : vibbow

    你看一下 https 握手时使用的协议

  • 資深大佬 : Yourshell

    跟反爬虫一个道理吧

  • 資深大佬 : msg7086

    @yinanc 每个浏览器。

  • 資深大佬 : xihefeng

    有点意思,我明天看看

  • 資深大佬 : love

    你就那么确定真和浏览器发出的一样?不抓包看看?还要比较浏览器头的顺序和大小写。有些语言的 dict 结构没有顺序。

  • 資深大佬 : wd

    他们可以这么做,不是通过者一个请求来判断你是不是合法。比如浏览器访问这个 url 前还访问了其他 url,你直接 request 没有这个逻辑

  • 資深大佬 : alan0liang

    看 #3 说的 knownBotClientHelloExtensions,应该是 TLS 握手的时候 Extensions 顺序什么的不太一样

  • 資深大佬 : binux

    SSL fingerprint

  • 資深大佬 : Chaidu

    太多方式可以识别了。比如,你通过浏览器访问网页,服务器能获取你系统安装了哪些字体(这一条就超过很多人的认知范围了吧?)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具