Heroku上的速率限制REST请求

| 为了避免滥用,我想在Rails应用程序中为REST API添加速率限制。在对此进行了一些研究之后,最佳实践似乎是将这种责任移至Web服务器,而不是在应用程序本身中进行检查。不幸的是,由于我将应用程序托管在Heroku上,因此无法完成此操作,因此无法控制Web服务器的设置。 在这种情况下,应该采取什么措施来防止滥用API?     
已邀请:
        我认为您正在寻找
rack-throttle
rack-attack
的宝石。它们都允许节流,并且
rack-attack
gem还允许您在某些时间段内超时,并阻止某些IP地址(如果他们是多个时间违规者或出于其他原因您希望阻止请求者)。     
        考虑在用户帐户上放置一个cookie,或者更好的是,在用户帐户上放置一个字段,该字段记录他们上次发出请求的时间(许多身份验证插件已经这样做了),如果请求是最新的,则拒绝/延迟他们的请求比5秒钟前(每秒20个请求)多。 注意:如果使用单线程Web服务器(例如Mongrel),则显式延迟而不是拒绝可能会延迟该Mongrel上的其他待处理请求。换句话说,它将影响您的其他用户。如果合适的话,也许是一个小的javascript / ajax响应,以通知用户他们正在限制速率。想一想StackOverflow如何阻止您在网站上过于频繁地执行某些操作。     

要回复问题请先登录注册