V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AnnaIsGod
V2EX  ›  Android

如何使用 WebView 过 Cloudflare?

  •  
  •   AnnaIsGod · 189 天前 · 5160 次点击
    这是一个创建于 189 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开发了某个网站的第三方客户端,不知道是不是因为这件事,那个网站后来套了一层 CloudFlare ,一开始我直接用的 WebView ,让用户手动通过验证,然后取 cf 的 Cookie ,但是过了一段时间,这个方法就不行了。 当你在 WebView 里访问套了 CF 的网站,只有通过验证的那一次请求可以访问,后续的任何访问都需要再次验证,也就是说 Cookie 没有被缓存到本地,也拦截不到 Set-Cookie 的那一条响应。

    于是想到,肯定是 CF 知道你用了 WebView ,于是我设置了 Chrome 同款 UA ,但是直接过不了验证。 给 WebView 设置的 UA 只作用于根请求,但是 CF 会通过 js 来发送请求,这个请求的 UA 是直接通过 navigator.userAgent 获取的,不受 WebView 设置影响,你也不能用 js 更改这个值。

    而 WebView 默认的 UA ,打印出来一看,直接明牌写着 wv 两个字。

    后来通过 Object.defineProperty 修改了 navigator.userAgent ,但还是不给设置 Cookie 。

    有大佬知道怎么通过 WebView 获取到 CF 的 Cookie 吗?

    7 条回复    2024-05-22 22:10:26 +08:00
    codehz
        1
    codehz  
       189 天前
    userAgent 不是你这么改的啊,请求发到服务器上就知道你 ua 了,你要在 webview 设置里去修改 ua
    其次检测 webview 方法很多,ua 只是最基础的手段
    AnnaIsGod
        2
    AnnaIsGod  
    OP
       189 天前
    @codehz 我设置了,问题是当你给 webview 设置的 UA 跟 CF 通过 js 获取的 UA 不一致,验证直接失败。
    willwon1
        3
    willwon1  
       189 天前
    逆向过 CLOUDFLARE CLOUDFLARE 并不知道你用了 WebView 只是你缓存有问题而已
    mmdsun
        4
    mmdsun  
       189 天前
    WebView 是自己写的还是用的什么框架的 WebView 比如腾讯 X5 WebView 框架?应该是缓存有 BUG 吧。

    如果换了其他 WebView 还是被拦了,再找绕过 Cf 的方案。
    去找几个逆向 OpenAI 的项目参考,Cf 绕过比较容易找到参考。
    一般是 JA3 指纹修改 、 或者 undetected_chromedriver 这个项目,这两都能过 CF
    AnnaIsGod
        5
    AnnaIsGod  
    OP
       189 天前
    @willwon1 https://community.cloudflare.com/t/block-webview-access/54244
    可能是网站站长设置的,因为只有 CF 的 Cookie 不设置,别的注册登录一类的 Cookie 完全正常......响应头直接就没有 Set-Cookie ,大概不是缓存问题
    AnnaIsGod
        6
    AnnaIsGod  
    OP
       189 天前
    @mmdsun 一开始我也觉得可能是缓存 bug ,但别的 Cookie 都能正常设置。WebView 就是系统自带的,唯一的疑点是这个 WebView 是被国产系统定制化的,通过日志看到调用的是:/my_bigball/app/WebViewGoogleCN/WebViewGoogleCN.apk


    现在准备试下腾讯的那个...
    rekulas
        7
    rekulas  
       185 天前
    不知道网站的拦截级别是多少,但是据我所知,cf 的主流拦截逻辑还是浏览器指纹,cookie 的拦截级别低于指纹
    你可以找找指纹的 cf bypass 库, 说不定验证都不需要 直接就过了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2411 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:58 · PVG 09:58 · LAX 17:58 · JFK 20:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.