如何知道网络请求是从浏览器发出的

1 天前
 leokun
用户模拟 js 的水平很高的情况下
6327 次点击
所在节点    浏览器
92 条回复
ejin
1 天前
油猴脚本,请求完全是浏览器发出和渲染,你怎么破,哈哈哈
laggage
1 天前
hmmm, 不能加验证码吗,请求前 js 弹出验证码框,验证通过才给请求?
play78
1 天前
定时更新前端代码和后端接口及加密请求方式,业务流程。只要你改得足够快,模拟的人就跟不上。
很简单,你前后端稍微改一下业务流程,逆向的人,要花 10 倍的时间去梳理。只要成本与收益不匹配。就没人去做。
duanxianze
1 天前
不可能的,只能用各种人机验证,验证码来预防
Rickkkkkkk
1 天前
用户直接手点浏览器你感觉能区分吗?
Ketteiron
1 天前
@leokun #8 请不要重新发明 cloudflare waf ,免费的
zachariahss
1 天前
单请求没办法,请求前的页面渲染状态,埋点,加载状态,鼠标轨迹,行为逻辑分析,一系列东西去判断,但是防不住真想和你做对抗的人....这东西都是一整个团队用上各种手段去尝试,对抗,没啥一劳永逸的办法
akakidz
1 天前
本质上,这类问题没有绝对的防御手段。对抗方式往往是一个“试错博弈”的过程,如果用户的试错成本足够低,那么无论你做多少防护,他总能找到突破口。关键在于如何提高用户的试错成本,而不是通过技术手段杜绝爬虫
Ketteiron
1 天前
这个问题等价于如何防止爬虫
答案是防不了

人机验证
通过接码平台解决

五秒挑战,参考 Cloudflare 5 秒盾,浏览器静默执行一段 js 脚本,识别当前是否是正常环境
通过无头浏览器解决

浏览器指纹验证
https://github.com/fingerprintjs/fingerprintjs
但它是开源的,攻击者依然可以想办法绕过

tls 指纹识别,cloudflare 等云厂商通过对所有开源请求库做特征库,能识别一个请求是否通过浏览器正常发送,甚至能识别无头浏览器
但可惜可以无头浏览器+伪造特征

再来就是老一套的混淆接口加解密
没啥用,5 分钟以内就能破
MHPSY
1 天前
有一个 brightdata ,可以搜索一下

他们提供完整的无头浏览器远程的方案,包括自动过验证码,自动过 5 秒盾,几乎只需要写拿数据的业务逻辑就可以了,很方便。

很难爬的数据我就用这个搞,基本都能搞定
Ketteiron
1 天前
人机验证算是最有效的防护手段了,双方硬拼钱包,但已经渐渐出现 AI 接码服务,攻击者成本会越来越低。
dddd1919
1 天前
也可以 RPA 操作浏览器,无解
leokun
1 天前
@play78 如果加解密的过程是动态生成或编译的,攻击者采用模拟手段应该会更加困难
lisxour
1 天前
@Ketteiron 现在的打码平台便宜到你怀疑人生,百万级以下上打码平台都不带眨眼的
Ketteiron
1 天前
@play78 没用,一般都是用无头去爬
AutumnVerse
1 天前
直接上 cf 盾,如果这都被破解,那就认了吧
bzw875
1 天前
通通加上人机验证,图片验证码
lavvrence
1 天前
felixsama969
1 天前
被针对是无解的
hahahalololo
1 天前
@Ketteiron 5 分钟!!大佬!!!我碰到 js 混淆加密,经常看半天都找不到破解方法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1161719

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX