上行短信验证器自研记

从「接收验证码」到「发送验证码」——自建上行短信验证笔记

短信验证大家都不陌生:
注册社交账号、租云服务器、开直播间……都能碰到。
它帮服务商降低滥用风险,却也让用户多了一笔「短信包」成本。
最近甚至冒出境外社交平台要求先开 Premium 才能收短信验证码的离谱操作。

fabi86377kif1-473x1024|230x500
图源 reddit


其实验证方向可以反过来:
让用户发一条短信给平台,完成校验。

  • 近几年注册微信,你可能给腾讯发过一条短信,而不是收验证码。
  • QQ 登录也支持「用密保手机短信」验证。

网上一搜却全是「平台下发验证码」的商业服务,几乎找不到「用户上行短信」的现成方案。
之前玩过开源工具 SmsForwarder,于是萌生想法:
自建 webhook,做一套「上行验证」

> 注意:本文提及的任何外部软件均与作者无利益关联,使用请遵守其 EULA,风险自负。


思路概览

  1. 手机端通过 SmsForwarder 把发出的短信回传到 webhook。
  2. 服务器按约定格式解析,判断是哪一家「服务商」的验证请求。
  3. 提供查询接口,供业务端校验手机号是否已验证。

消息格式

采用 [PREFIX]..[MSG] 结构:

  • [PREFIX] → 收件方标识(类似短码)
  • [MSG] → 实际验证内容
    示例见图:

短信格式示例|225x500

API 示例

GET /verify/:phone?prefix=xxx
返回是否已验证,文档见下图:

接入文档截图|690x429
来自 上行 SMS 验证器文档


当前状态

  • 试运行阶段,暂不开放自助注册 站点已EOL
  • 可能存在逻辑漏洞,欢迎拍砖。
  • 如需申请接入、提交漏洞或给出架构建议 → 欢迎邮递至 smsproject@rocoawa.com
文章状态:已收录~