在达到限制之前监控密钥用量
随时关注配额响应头,就能在请求真正被拒绝之前,提前知道何时即将达到限制。
对于大多数小型注册表单来说,专门的欺诈检测服务有些大材小用。一个简单的检查,把 IP 地址所显示的信息与注册表单所声称的信息进行比较,本身就能拦截相当一部分明显不符的注册尝试。
GET /v1/ip?ip=198.51.100.200{
"status": "ok",
"ip": "198.51.100.200",
"version": 4,
"found": true,
"country": "Brazil",
"country_code": "BR",
"region": "Sao Paulo",
"city": "Sao Paulo",
"postcode": "01310",
"lat": -23.5505,
"lon": -46.6333,
"timezone": "America/Sao_Paulo",
"asn": 8901,
"org": "Example Cloud Provider"
}如果注册表单要求填写账单国家,而输入的值与 IP 查询得到的 country_code 不符,仅凭这一点并不能证明有任何问题,因为旅行和使用 VPN 都很常见,也完全正当。请把不符视为给一个简单分数加一分,而不是自动拒绝。
org 字段常常能揭示一个地址属于住宅 ISP,还是数据中心或云托管服务商。来自云托管网络的注册(真实的个人客户很少会从这类网络浏览),值得比来自可识别的住宅 ISP 的注册打更高的分,不过同样,单凭这一点也不应自动拒绝。
如果您注意到某些特定的 ASN 值在滥用注册中反复出现,可以维护一份包含这些 asn 编号的简短列表,每当新注册与其中之一匹配时就加上固定分数。这是一种把该模式固定下来、供今后使用的轻量方法,对于范围如此有限的检查,无需一个完整的第三方 ASN 信誉数据库。
if ip_info["asn"] in known_abuse_asns:
score += 2把少量简单检查(国家不符、托管网络来源,以及您自己注册流程特有的其他任何因素)加总成一个数值分数。对于超过您所设阈值的注册,将其转入人工审核或额外的验证步骤(例如邮箱确认),而不是直接拦截。
不要在没有任何其他背景信息的情况下,把每个来自 VPN 或托管 IP 段的注册都自动评为高风险。很多正当的客户是从恰好经由数据中心 IP 段路由的公司网络浏览的,或者出于完全普通的隐私原因使用 VPN。把网络类型作为多个信号之一来加权,而不是作为一票否决的标记,可以避免这项检查因误报而拒绝真实客户。
共享的办公网络,或大型移动运营商的运营商级 NAT,可能会在短时间内让大量彼此无关的正常注册来自同一个 IP 地址。如果您在检查中还统计了每个 IP 的注册数量,请把这个阈值设置得足够宽松,以容纳这种情况,或者把它与国家和网络信号结合起来观察,而不是单独作为一条规则。
这类检查旨在拦截明显的低成本滥用,而不是为欺诈损失是严重问题的企业替代真正的反欺诈系统。请把它当作第一道过滤,而不是最终裁决。
每次注册尝试查询一次,就是一次请求。即使表单持续收到注册,在典型流量下也能完全落在每个密钥附带的每天 2,500 次免费请求之内。通过 X-Quota-Used 和 X-Quota-Free-Remaining 响应头,您可以简单地掌握注册尝试突然激增时消耗了多少配额。
由几个 IP 衍生信号构成的轻量评分,比什么都不做能拦截更多问题,又没有专用反欺诈平台的开销。IPv4 查询文档列出了此类检查可用的所有字段。