didit-phone-verification

📱 企业级手机验证与反欺诈方案

基于Didit官方API的多渠道OTP验证方案,支持SMS/WhatsApp/Telegram/语音发送,内置VoIP与一次性号码检测,为身份认证提供金融级安全防护。

收藏
6.6k
安装
2.2k
版本
v1.3.0
CLS 安全性认证2026-05-01
点击查看完整报告 >

使用说明

核心用法

Didit Phone Verification Skill 提供标准化的两步手机验证流程。首先调用 /v3/phone/send/ 接口向目标号码发送一次性验证码,支持 SMS(默认回退)、WhatsApp、Telegram 及语音电话四种渠道,并自动在首选渠道不可用时降级至 SMS。开发者需提供 E.164 格式的国际电话号码(如 +14155552671),可配置验证码长度(4-8位)、本地化语言及设备指纹等欺诈检测信号。

第二步调用 /v3/phone/check/ 接口验证用户输入的代码,系统支持基于策略的自动拒绝机制,可配置对重复号码、一次性临时号码(Disposable)或 VoIP 虚拟号码的拦截策略。整个流程受限于严格的安全策略:验证码5分钟有效、每码最多3次验证尝试、每号码每小时最多4次发送、24小时内最多2次重发。

显著优点

该 Skill 的核心优势在于其多渠道智能投递能力,能根据用户所在地区自动选择 WhatsApp、Telegram 或 SMS 最优路径,显著提升送达率。其内置的反欺诈引擎可实时检测高风险号码、提取运营商信息(包括号码类型识别:移动/固话/VoIP),并支持通过 IP 地址、设备ID等信号进行风险评分。

对企业级应用而言,其细粒度的策略控制极具价值——开发者可在验证环节配置是否自动拒绝虚拟号码或重复使用的手机号,有效防范批量注册、羊毛党等恶意行为。此外,详尽的响应数据(国家代码、运营商名称、验证方法、生命周期记录)为后续审计和用户画像提供了丰富数据支撑。

潜在缺点与局限性

首要限制在于强外部依赖性:所有验证逻辑完全依赖 Didit.me 第三方服务的可用性与合规性,一旦服务商出现网络故障或政策调整,将直接影响业务连续性。其次存在严格的速率限制(4次/小时/号码),对于高并发场景或 resend 频繁的业务可能产生瓶颈。

成本方面,虽然 Skill 本身开源,但 Didit API 为商业服务,需预充值或订阅,且语音通道成本通常高于短信。此外,号码格式要求严格(必须 E.164),对历史数据非标准化或用户输入习惯差异大的系统需要额外的格式转换层。最后,作为 T3 来源的社区项目,缺乏企业级 SLA 保障与长期维护承诺。

适合的目标群体

该 Skill 最适合需要强身份验证的互联网应用开发者,特别是金融科技、跨境电商、社交网络及共享经济平台的产品团队。对于正在构建 KYC(了解你的客户)流程、需要防范虚假账号注册或实施双因素认证(2FA)的中小型企业,此方案提供了比自建短信网关更快速、更安全的集成路径。

同时,对于已有 Didit 业务账户的企业,该 Skill 提供了标准化的代码封装,可减少重复开发。安全审计团队也会欣赏其透明的数据流(无本地持久化敏感数据)和明确的隐私边界。

使用风险

性能风险:由于涉及跨网络 API 调用,延迟通常在 200ms-2s 之间,在弱网环境或服务商高峰期可能出现超时,建议实现异步发送与重试机制(注意最多2次重发限制)。成本控制风险:语音验证成本较高,若未在前端限制用户频繁切换通道或重发,可能导致意外账单。隐私合规风险:虽然 Skill 本身不存储数据,但传输手机号至 Didit 服务涉及 GDPR/CCPA 等数据跨境传输合规要求,需确保用户协议中明确披露第三方处理商。配置风险:API 密钥通过环境变量 DIDIT_API_KEY 注入,若配置不当(如日志打印、误提交至 Git)可能导致密钥泄露,建议配合密钥管理服务使用。

安全解读

核心用法

Didit Phone Verification 是一个基于 OTP(一次性密码)的双步电话验证 API,专为需要验证用户真实手机号身份的场景设计。

基础流程:
1. Send - 向指定手机号发送验证码(支持 SMS、WhatsApp、Telegram、语音四种通道)

2. Check - 验证用户输入的验证码,返回验证结果与风控信息

关键约束:

  • 验证码 5 分钟有效期
  • 每个验证码最多 3 次验证尝试
  • 每号码每小时限 4 次发送
  • 24 小时内最多 2 次重发
  • 必须使用 E.164 格式手机号(如 +14155552671

风控能力:

  • 检测一次性/临时号码(disposable)
  • 识别 VoIP 虚拟号码
  • 获取运营商信息与号码类型
  • 支持基于 IP、设备信息的欺诈信号分析
  • 可配置策略自动拒绝高风险号码

显著优点

  • 多通道覆盖:WhatsApp(默认优先)、SMS、Telegram、语音电话,自动降级兜底
  • 企业级风控:内置号码黑名单、高风险标记、重复号码检测
  • 精细策略控制:可单独配置对一次性号码、VoIP、重复号码的自动拒绝策略
  • 合规友好:GDPR/CCPA 合规,数据最小化设计,不存储无关用户信息
  • 官方可信来源:来自 OpenClaw 组织(T2 级别),MIT 协议开源

潜在缺点与局限性

  • 商业服务依赖:完全依赖 Didit 云平台,需付费购买 API 积分
  • 网络单点:仅支持 verification.didit.me 官方域名,无私有部署选项
  • 地理覆盖限制:部分国家/地区的运营商识别可能不完整
  • 验证码窗口较短:5 分钟有效期对部分用户可能偏紧
  • WhatsApp 依赖:优先通道需要用户已安装 WhatsApp

适合人群

  • 需要快速集成电话验证的初创企业与中小团队
  • 金融科技、共享出行、社交平台等需反欺诈的场景
  • 已有 Didit 账户或计划使用其身份验证套件的开发者
  • 不愿自建 SMS 网关、寻求开箱即用方案的技术团队

常规风险

| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| API 密钥泄露 | 环境变量配置不当导致密钥暴露 | 严格限制 `DIDIT_API_KEY` 权限范围,定期轮换 |
| 短信轰炸滥用 | 接口被恶意调用向他人手机发码 | 结合 IP 限流、图形验证码前置 |
| 社会工程攻击 | 攻击者诱导用户泄露验证码 | 明确告知用户"请勿向任何人提供验证码" |
| 虚拟号码绕过 | 使用接码平台的临时号码通过验证 | 启用 `disposable_number_action: DECLINE` |
| 服务可用性 | Didit 平台故障导致验证中断 | 设计降级方案(如邮件验证备用) |

didit-phone-verification 内容

scripts文件夹
手动下载zip · 5.0 kB
verify_phone.pytext/plain
请选择文件