-
Notifications
You must be signed in to change notification settings - Fork 215
Open
Labels
enhancementNew feature or requestNew feature or request
Description
背景
社交媒体平台(Twitter/X、Bilibili、XHS 等)的风控系统不仅检测请求头和 cookie,还会分析用户的行为轨迹模式来判断是否为自动化操作。固定的操作间隔、线性的浏览路径、缺少自然的页面滚动和鼠标移动等,都是典型的 bot 特征。
目前 opencli 已有的反检测措施包括:
- Chrome 133 UA 和 sec-ch-ua headers 伪装
- browser-cookie3 提取真实浏览器 session
- 可配置的 request delay
但仍缺少用户行为层面的模拟,这在写操作(点赞、关注、发帖)场景下尤为关键。
提案
引入一个 轨迹模拟(Trajectory Simulation) 模块,模拟真实用户的交互行为模式,降低风控触发概率:
1. 请求间隔抖动(Request Jitter)
- 在现有
requestDelay基础上加入高斯分布随机抖动(±20%~40%) - 支持不同操作类型配置不同的延迟范围(读操作 vs 写操作)
2. 操作序列模拟(Action Sequence Simulation)
- 在执行核心操作前后插入"装饰性"操作(如先浏览 timeline 再执行目标动作)
- 模拟自然的浏览路径:首页 → 搜索/推荐 → 目标内容 → 操作
- 避免"直达式"操作模式
3. 鼠标轨迹 & 滚动模拟(Mouse & Scroll Simulation)
- 在 browser-based adapter 中加入拟人化的鼠标移动轨迹(贝塞尔曲线)
- 模拟自然的页面滚动行为(变速滚动、停顿阅读)
- 随机的视口停留时间
4. 频率控制(Rate Limiting)
- 每日/每小时操作次数上限
- 智能 cooldown:连续操作后自动增加间隔
- 指数退避:遇到 429/风控信号时自动降速
5. 会话模式(Session Pattern)
- 模拟真实的"上线-活跃-离线"周期
- 避免 24 小时不间断请求
- 随机化每次 session 的活跃时长
优先级建议
| 优先级 | 功能 | 复杂度 | 收益 |
|---|---|---|---|
| P0 | 请求间隔抖动 | 低 | 高 |
| P0 | 频率控制 | 中 | 高 |
| P1 | 操作序列模拟 | 中 | 中 |
| P2 | 鼠标轨迹 & 滚动模拟 | 高 | 中 |
| P2 | 会话模式 | 中 | 中 |
相关
- 现有反检测策略已覆盖 header 层面,本 issue 聚焦行为层面的补充
- 对写操作(like、follow、post)的安全性提升尤为显著
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request