如何使用 WebView 过 Cloudflare?

查看 73|回复 2
作者:AnnaIsGod   
开发了某个网站的第三方客户端,不知道是不是因为这件事,那个网站后来套了一层 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 吗?
codehz   
userAgent 不是你这么改的啊,请求发到服务器上就知道你 ua 了,你要在 webview 设置里去修改 ua
其次检测 webview 方法很多,ua 只是最基础的手段
AnnaIsGod
OP
  
@codehz 我设置了,问题是当你给 webview 设置的 UA 跟 CF 通过 js 获取的 UA 不一致,验证直接失败。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部