几周前,我写了关于 Have I Been Pwned (HIBP) 的一些重大变化,即引入年度计费和新的费率限制。今天,终于来了!这是HIBP 的 UserVoice上最期待、最需要的两个功能,所以很高兴看到它们在多年的等待后终于被淘汰了。在实现这一切时,现有的“一刀切”模型发生了变化,因此如果您使用 HIBP API,请确保您仔细阅读并了解对您的影响(如果有的话)。开始:
速率限制和(某些)定价不同
经过身份验证的 API 的发布博客文章解释了每月 3.50 美元价格背后的原始理由,最重要的是,我希望如何确保它不会构成障碍:
在选择 3.50 美元这个数字时,我想确保它是一个对服务的合法用户来说无关紧要的数字
正如我在上一篇博文中所说,当时我不明白的是,自相矛盾的是,低金额是许多组织的障碍!但同样,它使 API 对大众来说超级可用,因此价格保持不变。然而,速率限制需要重新审视并理解原因,让我们回到开头:
“每 1,500 毫秒 1 个请求”的速率可以追溯到 2016 年,当时我最初试图通过应用每个 IP 的限制来打击滥用行为。这是一种完全非经验的直觉,“让我们现在就尝试解决问题”的决定,直到最近我才真正开始浏览数据并查看 API 是如何被使用的。每1,500ms 1个请求,一天最多57,600个请求;以下是最近 24 小时周中期间服务的前 20 名消费者的请求数:
请记住,您永远无法在一天内完成全部 57,600 个请求,因为您必须对每个请求都进行完美的计时,以免达到速率限制,只有 1 个订阅者甚至实现了一半的潜力。事实上,只有 9 个订阅者实现了甚至四分之一的潜力,而其他人很快就回落到了这个潜力的一小部分。公平地说,我意识到我正在处理一整天的数据并谈论请求,就好像它们在整个时期内均匀分布,而不可避免地存在一些使用案例,它更多的是短暂的爆发而不是长时间的,甚至分配。无论如何,数据表明默认的“一刀切”的速率限制远远超出了几乎每个订阅者的实际消耗量,而且也大大超出了一个数量级。在某种程度上,我们最终得到的是小人物补贴大人物。
最重要的是,我们同时添加了一系列更高的速率限制,同时降低了入门级速率限制。如果您在上下文中看到这一切会更容易,所以让我们直接进入定价(全部以美元计):
这是我在上一篇文章中提到的 Stripe 的嵌入式定价表,这是您第一次注册密钥时看到的内容。有了新的限制,谈论“每分钟请求数”或 RPM 就更容易了,这就是我们现在坚持的命名法。入门级的 10RPM 型号将适用于超过 90% 的当前用户,而超过它的现有用户群中只有很小的一部分。 (是的,我知道这些请求有时是突发的,但即便如此,10RPM 仍然远远超过绝大多数用例。)
这里已经考虑了规模经济。从 10RPM 到 100RPM 并不是增加 10 倍,而是增加了大约 7 倍。多 5 倍的请求只是价格的 4 倍,以此类推。希望这能让以前购买多把钥匙的人更容易证明刮掉以前用来做这件事的所有杂物,并用更高 RPM 的单一钥匙代替它。
为了达到这个结果,我们从前面图表中的高级汇总统计数据到购买多个密钥的组织的性质(我们显然可以根据使用的电子邮件地址确定)的大量数据进行追溯。在这个过程中和过去几年中,我还与一群 API 用户聊天,并且对用例有很好的了解。一些趋势立即变得清晰:
首先,真正个人的用例具有非常低的速率限制要求。例如,通过自定义应用程序检查您自己或您家人的地址。或者我最喜欢的用途之一(也是我肯定使用的),家庭助理集成:
HA 会持续每 15 分钟发出 1 个请求。就这样。每次我们查看真正的个人用例时,10RPM 就足够了。
接下来,我们发现了一些在内部企业环境中使用的用例,例如用于监控员工暴露在违规行为中的情况。现在我们正在谈论更多的请求,但这也是通过网站上现有的域搜索功能更有效地完成的事情。这是一项已存在多年的按需、自助服务和完全免费的功能。我知道它不是基于 API 的, 这是有充分理由的(请参阅我对这个想法的评论),但如果 API 访问真的那么重要,那么还有企业路线(稍后会详细介绍)。其他示例包括扫描客户电子邮件以评估在账户接管等风险点上的风险。在每种情况下,我们主要谈论的是使用该服务的商业实体,我对商业企业承担更高的成本感到满意。
最后,还有“重量级选手”,即拥有大量按键的选手。一个使用 API 的示例为城镇的大端提供安全服务,并获得了一个看起来像电话号码的数字的资金。再说一次,我对他们穿着更符合价值的成本感到非常满意,而不是最初为了阻止坏人而得出的数字。
现有订户的祖父身份为 60 天
在我谈论年度定价之前,我想确保这个标题是明确的。在明年 1 月 6 日(即从今天起 60 天)之前,现有订阅者不会有任何变化。在该日期,每 1,500 毫秒 1 个请求的传统速率限制将以完全相同的价格滚动到新的 10RPM 限制。对于少数 10RPM 限制不足的大用户,您有几个月的时间来制定最佳前进道路。我今天将通过电子邮件向每个活跃订阅者发送电子邮件,以确保提前通知每个人(还有更新的使用条款,需要发送通知电子邮件)。
这实际上意味着什么?如果您想要按年计费或更高的费率限制,您可以在准备好时去实施(很快就会有更多信息)。或者,如果您只想坚持 10 RPM,那么您无需做任何事情,什么都不会改变。不过,我强烈建议(这并没有改变,它一直是指导)是确保您优雅地处理 HTTP 429 响应。无论您的速率限制是多少,如果您使用 API 的方式不是您自己直接控制速率,请确保正确处理这些响应。
现在可以每年进行计费
这很容易解释:每年支付现在是一件事?正如我在上一篇博客文章中解释的那样,频繁支付小额款项会对企业环境中的报销造成严重破坏。糟透了,我去过那里,但它就是这样。年度计费通过将费用索赔频率降低 12 倍和比 3.50 美元更容易向您的采购人员解释的更大单笔金额来缓解这一问题。
那么,您按年度而不是按月计费收取什么费用?我最初的诱惑只是把它提高 12 倍,因为我对刺激的营销噱头没有太大的耐心。但是,有一个有效的案例可以证明,个人付款减少 12 倍需要折扣,因为它消除了我们的开销(所有付款中有争议或失败或导致我们的时间有其他需求的百分比恒定),另外还有根据客户忠诚度要求提供折扣的论点。还有整个事情的非常简单的数学,最近在 Stripe 上的一笔付款最好地说明了这一点:
这是每笔交易中消失的 8.5%,主要是由于无论交易价格如何,都要收取 30c AUD 费用:
关键是激励年度而不是月度付款对所有人都有好处。我们决定看看典型的年度折扣是什么,一次又一次地发现同样的事情:
或者换句话说,当您注册一年时,可以免费使用几个月。事实上,巧合的是,这正是我在收到一封电子邮件说现在可以使用年度计费后与Nabu Casa (家庭助理云)签约的内容?
它从来都不是17%,而是每个示例从 12 个月的正常月费中减少 17%,然后将这个数字移到看起来很漂亮的东西?一些示例更少(Pluralsight 为 14%)而其他示例更多(更高Zendesk 的层数是 20%),但最终我们决定努力达到 17% 的数字,并提出以下方案:
为了与“支付 10,获得 12”的主题保持一致,这些价格恰好是每月价格的 10 倍。十分简单。
Stripe Customer Portal Magic 使更改计划变得容易
正如我在“未来的重大变化”博客文章中提到的那样,我一直在疯狂地删除代码,以便将更多的处理推迟到 Stripe 本身。通过使用他们的客户门户范例,现在可以轻松更改现有计划:
更改可以是不同的速率限制或不同的续订节奏:
Stripe 也会自动按比例分配所有内容,因此您可以立即升级到更高的 RPM 或从每月升级到每年,您只需支付之前计划和新计划之间的差额。或者,您可以降级并在下次续订时自动应用较低的计划。它超级简单,而且都是自助服务。
企业
7 年多以来,少数组织以更大规模的商业方式使用 HIBP 。您熟悉的其中一些,例如1Password 和 Mozilla 都使用 k-Anonymity 进行电子邮件地址搜索,这不是一种自助服务“将您的卡放入 Stripe”的模型(部分原因是 k-Anonymity 返回每次搜索都有大量结果)。 Infosec 公司使用 Enterprise 通过域级 API 搜索来支持客户。身份盗窃公司使用它在客户暴露于违规行为时向他们提供建议。一家公司甚至使用它来帮助检测机器人注册;事实证明,我们中的许多人都如此迷信,如果有人注册了他们的服务并且他们没有被控制,那就有点可疑(这只是他们使用的众多指标之一)。
这是一种根本不同的模式,它涉及密切的工作关系、大量的法律文件、采购人员、发票而不是信用卡以及各种其他“企业”事物。这仍然存在,今天的博客文章中没有任何改变。我现在在今天的帖子中提到这一点只是因为那些拥有企业订阅的组织中的一些人会阅读这篇文章并想知道他们坐在哪里。同样,我怀疑公共 API 的那些“100 多个关键”订阅者真的应该在 Enterprise 上,考虑到速率限制更改对他们的影响比大多数人更大,我将分别与他们联系。
结束时
对于仅处于旧速率限制一小部分的绝大多数用户而言,除了现在每年订阅的可用密钥比以前少 17% 之外,没有任何变化。同时,对于那些在小额、频繁的付款方面与公司官僚作风作斗争的人来说,这将为您解决问题,并为您提供前所未有的利率限制选择。
会有一些人处于上述用例的裂缝之间,并且不会对这些变化感到满意。我预计——我知道它会发生——但我希望这里概述的基本原理能够证明在尝试找到定价和费率限制的最佳点时所经过的大量思考和考虑。我还希望人们会询问添加其他速率限制,例如填补 100RPM 和 500RPM 之间的空白。我们一开始有更多的选择,但是结合这创造了选择问题的整个悖论以及对 API 实际使用方式的深入分析,我们简化了事情。但谁知道从长远来看,反馈当然是受欢迎的。
最后,如果您仔细观察,您会注意到围绕 HIBP 运行方式的更多结构。上周我写了关于推出 Zendesk 以获得支持的文章,因此现在有一个正式的票务系统。我还解释了夏洛特如何在 HIBP 的管理中发挥非常积极的作用,在接下来的几个月中,您将看到更多关于使该项目更具可持续性的其他举措。我的想法是这样的:HIBP 必须做些什么才能在后特洛伊世界保持可持续发展?或者换句话说,我们如何才能让越来越多的人成为一项必不可少的服务,使其变得更加强大和更加自我维持,而不仅仅是一个人将业余时间投入到激情项目中所能做的事情。
敬请期待,还有更多精彩内容 ?
原文: https://www.troyhunt.com/the-have-i-been-pwned-api-now-has-different-rate-limits-and-annual-billing/