我有个 Ajax 的接口,怎么防止爬虫调用,之前用过把一段 JS 写一段从 Dom 上获取一个值,根据一定的算法重新生成一个值作为 token 传递后端校验,JS 代码采用 Javascript Obfuscator Tool 工具混淆加密,结果还是被破解了。。。。。有什么好的办法吗?各位大神

我有个 Ajax 的接口,怎么防止爬虫调用,之前用过把一段 JS 写一段从 Dom 上获取一个值,根据一定的算法重新生成一个值作为 token 传递后端校验,JS 代码采用 Javascript Obfuscator Tool 工具混淆加密,结果还是被破解了。。。。。有什么好的办法吗?各位大神
1 webbillion Dec 14, 2023 浏览器端无法完全防范吧,只是说可以加大破解难度,像你说的混淆,js 用各种 utf 转移加大难度,还可以加入那个检测是否打开控制台的库,但是这些都是有办法拦截和破解的。从后端限制 ip 和并发数量之类的角度着手吧。 |
2 zzl22100048 Dec 14, 2023 爬虫是不可能完全避免的,如果只是拦截恶意爬虫,直接上实名认证 |
3 codehz Dec 14, 2023 不嫌麻烦的话走 websocket 吧,至少难度上可以给攻击者加一些,能干掉不少低级爬虫框架 |
4 murmur Dec 14, 2023 实名认证+各种验证码,最后就跟阿里京东一样,动不动就要拼个图拉个滑块 |
5 chaoschick Dec 14, 2023 via Android 设计一个更加复杂的加密算法,继续叠 buf |
6 leokun Dec 14, 2023 加验证码 |
7 zsj1029 Dec 14, 2023 via iPhone Wasm 加密 |
8 dw2693734d Dec 14, 2023 用 cloudflare 验证机器人,稳的一匹 |
9 renmu Dec 14, 2023 via Android 必须绑定微信,让他突破微信的风控去 |
10 henix Dec 14, 2023 反爬需要前后端配合,确实如同楼上说的。可以考虑:1. 限制 ip 每秒请求数 2. 要求用户必须注册,限制用户请求数 3. 加验证码或直接用极验之类的方案 4. 加工作量证明( proof of work ),要求每次请求必须完成一些复杂计算 |
11 pengtdyd Dec 14, 2023 cloudflare 强的一批 |
12 ilee1989 OP |
13 huangpingdong Dec 15, 2023 @pengtdyd 没用,直接破 |
14 letitbesqzr Dec 15, 2023 @dw2693734d #8 @pengtdyd #11 没用,轻松过。。包括 ReCaptcha v2 、ReCaptcha v3 、ReCaptcha v2 Enterprise 、ReCaptcha v3 Enterprise 、FunCaptcha 、HCaptcha 都一大堆绕过的三方服务 。 |