在达到限制之前监控密钥用量
随时关注配额响应头,就能在请求真正被拒绝之前,提前知道何时即将达到限制。
大多数真实访客通过家庭宽带或移动网络连接,而大多数自动化流量来自数据中心和云托管服务商。这种差异会清楚地体现在 IP 查询的 asn 和 org 字段中。
GET /v1/ip?ip=203.0.113.99{
"status": "ok",
"ip": "203.0.113.99",
"version": 4,
"found": true,
"country": "United States",
"country_code": "US",
"region": "Virginia",
"city": "Ashburn",
"postcode": "20147",
"lat": 39.0438,
"lon": -77.4874,
"timezone": "America/New_York",
"asn": 16509,
"org": "Example Cloud Hosting"
}根据您自己的流量历史,维护一份简短的列表,列出您认为属于云托管和已知自动化平台的组织名称模式或具体 ASN 编号,并对来自这些网络的流量加以额外审查,例如进行 CAPTCHA 验证或降低信任评分,而不是直接拦截。云 IP 段也有合法用途,包括企业 VPN 和移动运营商基础设施,因此这个信号最好与行为信号结合使用,而不是单独使用。
将 ASN 检查与 country_code 字段结合,可以发现另一种模式。一个声称位于某个国家、却始终从注册在另一个国家的数据中心地址登录的账户,两个事实合在一起构成的信号,比任何一个单独的事实都更强。任何一个字段单独都证明不了什么,因为真实客户会出差旅行,也会出于完全正常的原因使用 VPN,但在评分系统中,这种组合值得赋予比单独运行任一检查更高的权重。
在流量首次到达您的应用时运行 ASN 检查,例如在注册表单或登录尝试处,而不是事后才检查,这样该信号才能真正影响接下来发生的事情。在整个会话期间缓存结果,因为一个地址的 ASN 不会在会话中途改变。
在注册时已评分过一次、之后又从同一网络地址回访的访客,不需要每次都重新查询,因为同一地址的 asn 和 org 字段在不同会话之间保持稳定。将分类结果与地址本身关联缓存,而不仅仅是与会话关联,这样已知安全的家庭宽带地址也不会在今后的每一次访问中都被重新评估。
对来自已识别托管或云服务 ASN 的每个请求一律直接拦截,而不是进行评分,会把相当一部分合法流量连同您真正想阻止的自动化流量一起挡在门外。企业 VPN 出口、部分移动运营商以及注重隐私的浏览器,都会经由可能被识别为托管服务商的基础设施转发。请将 ASN 和 org 字段作为评分或验证决策的一项输入,而不是单独作为自动拦截规则。
每个新会话查询一次,之后缓存结果,就是每位访客一个请求,而不是访客每发出一个请求就查询一次。对于注册或登录量可观的网站,在流量适中时,这完全在每个密钥附带的每天 2,500 次免费请求之内;当用量超过这一额度后,再转为使用预付额度或 Unlimited 密钥。
网络来源是多个信号之一,本身并不是定论,但把它加入注册或登录流程的成本很低。IPv4 查询文档和 IPv6 查询文档介绍了该端点返回的每个字段。