问题标签 [rate-limiting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7230 浏览

ruby-on-rails - Rails 控制器的速率限制

我正在为我的 rails 3 应用程序搜索限速引擎。我找到了一些,但这不是我需要的。我找到了 rack-throttle gem 和 curbitt gem。似乎 rack-throttle 对 Rails 应用程序的每个请求都有效,但我只需要将请求限制为一个操作。Curbit 最近一次更新是在两年前。谁能告诉我我可以使用的任何其他限速引擎吗?请注意,它应该与缓存一起使用。

0 投票
2 回答
1197 浏览

ruby-on-rails - 在 Rails 应用程序中限制 POST 请求

rack-throttle在我的 rails 3 应用程序中用作限速引擎。Rack::Throttle::Interval我已经根据定义自定义速率限制逻辑创建了自己的类。我正在检查请求是否针对确切的控制器和确切的操作。如果我提出GET要求,这可以正常工作。但是,如果我发送POST请求,我会遇到一些问题。

这是我的控制器操作

我的路线

编辑:

问题是POST请求即将到达应用程序,因此allowed?调用了该方法。但是当我打电话时,Rails.application.routes.recognize_path我得到了一个Route set not finalized例外。我如何防止用户在确切控制器的确切操作的帮助下发送大量发布请求rack-throttle

添加中间件application.rb

两者IpLimiterIpUserAgentLimiter来自自定义限制器

0 投票
1 回答
585 浏览

tor - 使用 Tor 处理 Google 速率限制 API?


         我正在查看一些 API,例如 twitter、google API。根据我在此链接中的理解,http ://www.quora.com/Tor/How-does-Tor-work 粗略地说,Tor 掩盖了发起者的 IP
         我想知道是否可以通过以下方式克服这些速率限制暂时使用 Tor?比如当你开始接收速率限制错误并在一段时间后切换回正常模式时切换到 Tor 网络。我也看到 Tor 网络这些天真的很慢。我想知道是否有人试过这个。请告诉我。谢谢。

0 投票
2 回答
6093 浏览

java - Servlet 过滤器:非常简单的限速过滤器,允许突发

我想添加一个非常简单的过滤器,执行每个 IP 的速率限制,但仍然允许突发,有点像iptables允许做的事情。

我不想安装整个厨房水槽:我只需要一个实现该功能的过滤器类。

什么是一个好的数据结构/算法,允许做一个简单的“限速但允许短突发”?

例如,如果用户每分钟尝试执行超过 'x' GET / POST ,我想提供一个 HTTP 错误代码,但我仍然想让同一用户“爆发”到 'y'(其中 y > x) 直到他击中爆裂帽。

只是为了比较,这里是如何使用iptables配置类似的速率限制与突发(这只是一个示例,以显示我在说什么,即使在我的情况下它不是关于设置速率限制+在 TCP SYN 数据包上突发):

0 投票
6 回答
10098 浏览

java - Spring中如何实现基于客户端令牌的限速?

我正在使用 Spring 3 + Spring MVC 开发一个简单的 REST API。身份验证将通过 OAuth 2.0 或使用 Spring Security 的带有客户端令牌的基本身份验证来完成。这仍在辩论中。所有连接都将强制通过 SSL 连接。

我一直在寻找有关如何实施速率限制的信息,但似乎没有很多信息。该实现需要分布式,因为它可以跨多个 Web 服务器工作。

例如,如果有三个 api 服务器 A、B、C 并且客户端每秒限制为 5 个请求,那么像这样发出 6 个请求的客户端会发现对 C 的请求被拒绝并出现错误。

它需要基于请求中包含的令牌工作,因为一个客户端可能代表许多用户发出请求,并且每个用户应该受到速率限制而不是服务器 IP 地址。

该设置将是 HAProxy 负载平衡器后面的多个 (2-5) Web 服务器。有一个 Cassandra 支持,并且使用了 memcached。Web 服务器将在 Jetty 上运行。

一个潜在的解决方案可能是编写一个自定义 Spring Security 过滤器,该过滤器提取令牌并检查在最后 X 秒内使用它发出了多少请求。这将允许我们为不同的客户做一些事情,比如不同的速率限制。

关于如何完成的任何建议?是否有现有的解决方案,还是我必须编写自己的解决方案?我以前没有做过很多网站基础设施。

0 投票
1 回答
259 浏览

api - Foursquare 场地统计数据 - 一站式

我有一个托管场所的列表。

有一个场地统计端点,它允许我获取给定场地的统计数据。

是否有一个 API(现有的或计划的)可以一次性获取所有托管场地的此类统计数据?

如果您有数百个场地,很容易达到速率限制。

而且文件输出不是我们喜欢的——我们更愿意使用 API。

0 投票
2 回答
1472 浏览

couchdb - 速率限制 - 单独使用 CouchDB 和 Redis 或 CouchDB

我编写了一个带有 CouchDB 后端的应用程序。我在 CouchDB 上投入了很多时间,所以我不愿意将所有内容转移到不同的 NoSQL 数据库(如 Redis)。

问题是我现在需要实现速率限制(基于 IP 地址)功能。

很多例子说明 Redis 对这类任务有多好,但是因为我不想为其他任务放弃 CouchDB,这意味着我基本上将运行(并支持)两个数据库(1 个用于大多数数据,1 个用于速率限制)等等......

  1. 与 Redis 一起运行 CouchDB 是否闻所未闻?
  2. CouchDB 本身是否适合处理速率限制?
0 投票
1 回答
268 浏览

web-services - 限制对公共 API 的访问

我有一个我想提供公共访问的 API,但我希望能够限制访问。

我一直在思考 Twitter 的模型:

  • Twitter 允许开发人员使用 api 密钥访问数据(我认为)。
  • Twitter 还必须从他们的网站访问数据,以允许您发布推文/搜索。
  • 所以 Twitter 必须能够阻止开发人员冒充 twitter 并基本上使用他们的 api 密钥。

他们是怎么做到的呢?还有更好的方法吗?

0 投票
1 回答
548 浏览

mysql - 如何从远程主机对 mysqldump 进行速率限制?

我正在从远程机器上运行 mysqldump 来定期备份我们的数据库,并希望确保它不会耗尽所有可用带宽。

我正在运行的命令是:

如果可能的话,我宁愿不必依赖在本地运行备份并使用 SCP/SFTP。

0 投票
1 回答
72 浏览

twitter - 为什么 twitter api 限制会阻止我在其他网站上看到推文?

我正在使用这个库http://lab.rog.ie/chirp/,当我连接到我的帐户时,我无法加载任何人的流。这是回应:

是因为api请求限制吗?我把关于请求限制的部分加红了https://dev.twitter.com/docs/rate-limiting但我仍然不明白发生了什么......