防薅羊毛策略 (Anti-Abuse & Rate Limiting)
按本策略设计、实现或审查一个产品的免费额度与限流。用户可以用参数指定只做其中一部分:--registered、--visitor、--rate-limiting、--captcha;不带参数就按全部章节处理。
1. 核心原则
- 控制成本:羊毛是获客手段,必须“给得起,但不能被薅死”。
- 随时可收回:免费额度和权益必须能动态调整、随时收回,对违规账号可以直接封禁。
- 分级管控:正常用户的体验不受影响,只严格限制恶意的批量请求。
动手之前,先把产品里所有“送东西”的入口列出来(注册赠送、访客试用、每日签到、邀请奖励、免费模型调用),再逐个按下面的章节加防护。
2. 用户身份与设备识别
注册用户标识 (--registered)
- 限制或优先支持受信邮箱,例如 Gmail、GitHub 账号。
- 对普通或任意邮箱做二次校验,或者设置注册门槛。
访客设备标识 (--visitor)
- 使用类似 FingerprintJS 的浏览器设备指纹,并在后端鉴权:校验这个设备当日已使用的次数,不要只信前端。
- 无痕模式:直接拒绝注册,也不发放访客赠送。
- 超过限制次数后,强制弹出登录或注册窗口。
3. 注册与登录安全防护
请求限流与冷却 (--rate-limiting)
- 对注册、登录、找回密码和邮件验证码(OTP)请求设置冷却时间和限流。
- 同一个 IP 在短时间内(例如一分钟内)连续发起注册,要被拦截。
人机校验 (--captcha)
- 免费接入 Cloudflare Turnstile 挂件,在表单提交、注册这类关键行为之前强制校验,并在服务端验证结果。
- 遇到爬虫或高风险场景,可以启用 Managed Challenge 全屏页。
4. 业务运营与模型成本隔离
额度与任务控制
- 采用“固定赠送 + 每日或每周上限”的积分或额度制,例如 5 小时限额加周限额。
- 上线第一天就推出付费套餐。免费积分要通过日常签到等任务来获取,而不是一次给满。
地域风控
- 对高风险地区(例如印度 IP)关闭注册送分和访客送分。
- 或者给免费积分产出的结果加满屏水印,付费之后才解锁。
模型与成本降级
- 免费用户路由到低成本、轻量化的 API 或模型。
- 付费用户开放官方和高性能模型。
5. 执行步骤
- 列出所有“送东西”的入口,写成清单。
- 为每个入口定好额度、上限和冷却时间,并确认这些数字放在配置里,改动不需要发版。
- 按第 2 到 4 章逐项加防护,每加一项都说明它拦的是哪种薅法。
- 补上“收回”的开关:能停发赠送、能清零免费额度、能封禁账号。
- 自检:用同一设备、同一 IP、一次性邮箱各试一遍批量注册,确认都被挡住,而正常注册和登录不受影响。
6. 输出要求
- 先给出入口清单和每个入口的防护方案,再改代码。
- 数字(额度、冷却时间、上限)一律标明是示例,由用户按自己的成本确定。
- 不要为了防薅而误伤正常用户:每条规则都要说明被拦住的用户会看到什么提示。

评论(0)
还没有评论,来说第一句。