Signup Gate

在账户创建前阻止虚假注册

注册表单上加一个 script 标签,服务器上做一次校验。机器人、一次性邮箱、无效域名以及经 Tor 或 VPN 的注册都会被识别;gmial.com 这类拼写错误会得到修正建议。

  • 无需解谜
  • 检查邮箱
  • 先用 Monitor 模式

检查内容

每次注册三项检查

网络和浏览器信息随 token 而来;邮箱随您服务器的 verify 调用而来。

  • 网络

    Tor、VPN、住宅代理和机房地址,按类别标注。

  • 浏览器

    替机器人填写表单的无头浏览器和脚本。

  • 邮箱

    语法错误、不收邮件的域名、一次性邮箱、拼写错误和职能邮箱。

工作方式

四个步骤,访客无需任何操作

与任何表单使用的表单 Gate 相同,只是在校验中加上邮箱地址。

  1. 1

    添加 gate.js 标签

    在注册页面加一个 script 标签,填入您的站点密钥。

    signup.html
    <script
      src="https://ipscanner.io/gate.js"
      data-sitekey="site_4fQ8nZ2kLm7xR1vT9cBw"
      async></script>
  2. 2

    表单携带 token

    gate.js 会添加隐藏字段 ipscanner-token。不用 Cookie,也不用浏览器存储。

    signup.html
    <form method="post" action="/signup">
      <input name="email" type="email">
      <input name="password" type="password">
      <!-- added by gate.js -->
      <input type="hidden"
        name="ipscanner-token"
        value="c2l0ZV80ZlE4fDE3…">
    </form>
  3. 3

    连同邮箱一起校验

    您的服务器把 token 和邮箱发送到 /v1/gate/verify,得到一个结果。

    POST /v1/gate/verify
    {
      "success": true,
      "class": "human",
      "action": "flag",
      "mode": "enforce",
      "email": {
        "status": "risky",
        "reason": "typo",
        "suggestion": "jane@gmail.com",
        "domain": "gmial.com",
        "action": "flag"
      }
    }
  4. 4

    按结果决定

    一次性邮箱和无效地址默认拦截;拼写错误会被标记,方便您提示修正。

    • 无效地址放行标记拦截
    • 一次性邮箱放行标记拦截
    • 疑似拼写错误放行标记拦截
    • 职能邮箱放行标记拦截

校验代码

服务器上约十行代码

随 token 一起发送 email。在 enforce 模式下 action 为 block 时拒绝注册;有 email.suggestion 时把它展示给用户。

verify.mjs
// token = the form's "ipscanner-token" field, ip = the visitor's address
// email = the address the form submitted
const res = await fetch('https://ipscanner.io/v1/gate/verify', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ secret: process.env.IPSCANNER_GATE_SECRET, token, remote_ip: ip, email })
});
const v = await res.json();
if (!v.success || (v.action === 'block' && v.mode === 'enforce')) {
  // reject the signup; v.email.suggestion holds "did you mean" when there is one
}

先观察,再拦截

看清它会拦下的每一次注册

Monitor 模式下不会拒绝任何请求。Sites 面板显示每次注册的类别、邮箱结果以及本应发生的处理。

  • 免费监控:每月 30,000 次检查,保留 7 天日志
  • 从 Starter 起可执行拦截,¥128/月
  • 每次附带邮箱检查的注册计 1 次请求
  • 修改任何动作都无需重新部署
注册表单 · example.comMonitorEnforce
  • 14:02真人 · 一次性邮箱将被拦截
  • 14:01真人放行
  • 13:58恶意自动化将被拦截
  • 13:57真人 · 疑似拼写错误标记
  • 13:55VPN · 无效地址将被拦截

常见问题

问题

语法、域名能否接收邮件(MX 记录)、一次性邮箱服务商、gmial.com 这类常用邮箱的拼写错误,以及 info@ 之类的职能邮箱。

保护您的注册表单

创建开启注册邮箱检查的 Gate,粘贴一个 script 标签,加上校验代码。Free 以 Monitor 模式运行;Starter 可拦截,¥128/月起。

不是注册表单?表单 Gate 适用于任何表单