如何知道网络请求是从浏览器发出的
用户模拟 js 的水平很高的情况下
UA?
无解
这是最容易模拟的
各种无头浏览器
买 ip 库,检测到 proxy/idc 跑 js PoW ,captcha 验证码,加 fingerprint 差不多了,再搞多就不化算,防的成本多于攻
用户雇个大学生手动操作也就 3000 一个月
不能,只能结合行为做上下文分析
想到一个麻烦的办法,也是爬虫模拟与真实操作的本质区别
在访问网页时,真实的业务访问是连续的,间隔的,同一个用户在特定的业务中是不可能出现并发的,即使用户模拟 js 很厉害,但是在模拟业务次序,调整请求间隔上很难做到与真实用户一样
#8
检测请求间隔
人的请求间隔是不稳定的,无规律的。
而大部分爬虫往往使用 sleep(random(x,y))的方法模拟间隔,这种均匀分布有很明显的特征
可以考虑拒绝掉新建连接的第一个请求包,这样可以确保地址不被探活
浏览器 ja3 签名/浏览器指纹之类的
这属于攻防了,对方水平很高,那建议花更多的钱请个高人或者找业内顶尖团队,否则记录日志就能挡住一些新手写的爬虫了
无解
最多是对前端请求做个摘要, 后端接到后进行验证, 这个只能提高门槛
另外就是加蜜罐, 这样能知道哪些用户是不正常的.
用户模拟 js 的水平很高?
用户直接上无头浏览器!
调用 GPU 不给用的 直接怕黑
比较有效的方法一是带上各种人机交互验证,二是监控用户鼠标轨迹
但是对抗情形下,都有破解的方法:第三方解码、多轨迹回放,只不过会大大增加攻击者的成本
你说的这个无非就是反爬,没有最终的方案,都只是攻防而已
#8 这是个蠢办法,你怎么确定,你不会 ban 掉真实的用户?
无解,人家用无头浏览器,ai 操作
无非猫捉老鼠,后台搞个无头浏览器
油猴脚本,请求完全是浏览器发出和渲染,你怎么破,哈哈哈
hmmm, 不能加验证码吗,请求前 js 弹出验证码框,验证通过才给请求?
定时更新前端代码和后端接口及加密请求方式,业务流程。只要你改得足够快,模拟的人就跟不上。
很简单,你前后端稍微改一下业务流程,逆向的人,要花 10 倍的时间去梳理。只要成本与收益不匹配。就没人去做。
不可能的,只能用各种人机验证,验证码来预防
用户直接手点浏览器你感觉能区分吗?
#8 请不要重新发明 cloudflare waf ,免费的
单请求没办法,请求前的页面渲染状态,埋点,加载状态,鼠标轨迹,行为逻辑分析,一系列东西去判断,但是防不住真想和你做对抗的人....这东西都是一整个团队用上各种手段去尝试,对抗,没啥一劳永逸的办法
本质上,这类问题没有绝对的防御手段。对抗方式往往是一个“试错博弈”的过程,如果用户的试错成本足够低,那么无论你做多少防护,他总能找到突破口。关键在于如何提高用户的试错成本,而不是通过技术手段杜绝爬虫
这个问题等价于如何防止爬虫
答案是防不了
人机验证
通过接码平台解决
五秒挑战,参考 Cloudflare 5 秒盾,浏览器静默执行一段 js 脚本,识别当前是否是正常环境
通过无头浏览器解决
浏览器指纹验证
github.com/fingerprintjs/fingerprintjs
但它是开源的,攻击者依然可以想办法绕过
tls 指纹识别,cloudflare 等云厂商通过对所有开源请求库做特征库,能识别一个请求是否通过浏览器正常发送,甚至能识别无头浏览器
但可惜可以无头浏览器+伪造特征
再来就是老一套的混淆接口加解密
没啥用,5 分钟以内就能破
有一个 brightdata ,可以搜索一下
他们提供完整的无头浏览器远程的方案,包括自动过验证码,自动过 5 秒盾,几乎只需要写拿数据的业务逻辑就可以了,很方便。
很难爬的数据我就用这个搞,基本都能搞定
人机验证算是最有效的防护手段了,双方硬拼钱包,但已经渐渐出现 AI 接码服务,攻击者成本会越来越低。
也可以 RPA 操作浏览器,无解
如果加解密的过程是动态生成或编译的,攻击者采用模拟手段应该会更加困难
现在的打码平台便宜到你怀疑人生,百万级以下上打码平台都不带眨眼的
没用,一般都是用无头去爬
直接上 cf 盾,如果这都被破解,那就认了吧
通通加上人机验证,图片验证码
lawrenceli.me/blog/cloudflare#client-hello---ja3
基于 TLS 的 JA3/JA4 指纹。
被针对是无解的
5 分钟!!大佬!!!我碰到 js 混淆加密,经常看半天都找不到破解方法
以前还有 tls 指纹的 现在 也是轻松过了 放弃吧
不会是广告吧
现有三室小房( 90 平),鉴于公积金贷款能贷到 85 万和商贷 4.4%左右利率,想换个大点的房子,因为在小区有车位,所以考虑在当前小区置换 现状 1.90 平还完贷款大概还…
当时头脑发热辞职去实现小时候的游戏开发梦,但现实是很残酷的,并没有想象的那么容易,虽然钱没有挣到但对市场认知和经验得到更深理解,一年多我做了哪些 用了四个多月时间开发了一款塔防…
ClashScan (推荐使用最新 Chrome 内核浏览器) mikewang000000.github.io/ClashScan/ 代码开源在 GitHub ,页面部署在…