From edcd019e9c8a086ab26457f81cfe5d6b56a3754b Mon Sep 17 00:00:00 2001 From: Molly Struve Date: Thu, 23 Apr 2020 08:58:27 -0500 Subject: [PATCH] [deploy] Throttle General Site Requests (#7418) --- config/initializers/rack/attack.rb | 6 ++++++ spec/initializers/rack/attack_spec.rb | 1 + 2 files changed, 7 insertions(+) diff --git a/config/initializers/rack/attack.rb b/config/initializers/rack/attack.rb index dfdf4171f..a060268dd 100644 --- a/config/initializers/rack/attack.rb +++ b/config/initializers/rack/attack.rb @@ -16,4 +16,10 @@ class Rack::Attack request.env["HTTP_API_KEY"] end end + + throttle("site_hits", limit: 100, period: 2) do |request| + if request.env["HTTP_FASTLY_CLIENT_IP"].present? + request.env["HTTP_FASTLY_CLIENT_IP"].to_s + end + end end diff --git a/spec/initializers/rack/attack_spec.rb b/spec/initializers/rack/attack_spec.rb index 3370a19d7..c2f00b2f0 100644 --- a/spec/initializers/rack/attack_spec.rb +++ b/spec/initializers/rack/attack_spec.rb @@ -5,6 +5,7 @@ describe Rack::Attack, type: :request, throttle: true do redis_url = "redis://localhost:6379" cache_db = ActiveSupport::Cache::RedisStore.new(redis_url) allow(Rails).to receive(:cache) { cache_db } + cache_db.data.flushdb end describe "search_throttle" do