Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 防止DOS攻击的速率限制(Heroku)_Ruby On Rails 3_Heroku - Fatal编程技术网

Ruby on rails 3 防止DOS攻击的速率限制(Heroku)

Ruby on rails 3 防止DOS攻击的速率限制(Heroku),ruby-on-rails-3,heroku,Ruby On Rails 3,Heroku,我的应用程序中有2个POST、1个PUT和1个DELETE API。我的应用程序部署在Heroku上。我想对这些API进行评级限制,但这只是为了防止DOS攻击,或者防止有人在无限循环中错误调用API。这种情况下理想的利率限制是多少。例如,每分钟x,每小时y。x和y的理想数字是多少?这取决于你的应用程序 1) 这取决于你的应用程序的“重量”: 如果您的每个请求都需要大量处理器和/或大量访问数据库,那么您需要设置一个较低的限制,因为每个请求都是“昂贵的”。如果你的应用程序速度快、效率高,那么你就有更

我的应用程序中有2个POST、1个PUT和1个DELETE API。我的应用程序部署在Heroku上。我想对这些API进行评级限制,但这只是为了防止DOS攻击,或者防止有人在无限循环中错误调用API。这种情况下理想的利率限制是多少。例如,每分钟x,每小时y。x和y的理想数字是多少?

这取决于你的应用程序

1) 这取决于你的应用程序的“重量”:

如果您的每个请求都需要大量处理器和/或大量访问数据库,那么您需要设置一个较低的限制,因为每个请求都是“昂贵的”。如果你的应用程序速度快、效率高,那么你就有更多的回旋余地,你可以设置更高的API限制

2) 这取决于应用程序的使用情况

你的应用程序需要大量API点击才能使用吗?API限制如何影响应用程序提供的功能

3) 这取决于你有多少处理器

Heroku允许您通过设置web动态对象和worker动态对象来扩展应用程序。您拥有的越多,就越能够提供更高的API限制


在任何情况下,如果您想防止有人拒绝您或在无限循环中调用您的API,那么这是错误的方法,因为API限制会影响好人和坏人。更好的方法是检测不良行为并做出适当响应(即在有限的时间内拒绝违规IP地址)。

一种方法是插入3scale API插件(),这将强制执行速率限制,并使用外部基础设施进行分析等

通过这种方式,您可以对单个用户进行分级限制,并为每个用户设置不同的配额(加上所有注册等)

它不会严格阻止真正的DOS,因为即使是未经授权的请求也会到达你的手中——但它会阻止它们进入你的堆栈+切断最先造成损害的人