php - 如何限制公共(public) API 的速率?

标签 php api rate-limiting

我有一个算法可以接收输入并提供输出,我希望开发人员像 API 一样使用它。为了防止拒绝服务攻击和过度过度使用,我想要一些速率限制或保护。我有什么选择?我是否提供帐户和 API key ?这通常如何运作?对于这种情况还有哪些其他可能的想法?

最佳答案

帐户和 API key 听起来确实是个好主意,如果不出意外的话,它会阻止目标开发人员之外的其他人访问您的 API。

用一个简单的数据库表记录上次访问特定 API 并在特定时间范围内访问次数过多时拒绝重复使用应该是相当简单的。如果可能,请在下次 API 可在输出中重复使用时返回,以便开发人员可以相应地进行限制,而不必采用反复试验的方法。

您希望重复使用相同的输入还是完全随机?如何缓存输出并仅将缓存提供给开发人员,直到 API 准备好重用?这种方法对帐户和 key 的依赖也少得多。

关于php - 如何限制公共(public) API 的速率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4892402/

相关文章:

css - Facebook 点赞框 API : Unable to alter height

node.js - 我应该在应用程序级别应用速率限制还是使用 Nginx 的功能?

node.js - Google/Firebase 云功能的速率限制?

php - 无法在 Laravel5.2 View 中输出图像

php - 带有 rowGrouping 插件 aoColumns 定义的数据表失败

php - 从ajaxcomplete到php变量

email - 检查虚拟邮件用户后的 Postfix PolicyD v2 (cluebringer)

php - 使用 PHP(或其他语言)流式传输数据(例如音乐)

api - Azure Active Directory B2C 中的声明

javascript - GitHub API-合作者列表