From b99ccd7c02e0c325feeb06155ffc67a5e4ed887d Mon Sep 17 00:00:00 2001
From: Alexandre Flament <alex@al-f.net>
Date: Sat, 12 Feb 2022 15:57:07 +0100
Subject: [PATCH] plugin limiter: check only /image_proxy and /search

also adjust the number of req/time
---
 searx/plugins/limiter.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/searx/plugins/limiter.py b/searx/plugins/limiter.py
index eb0704c9c..e028e3e4a 100644
--- a/searx/plugins/limiter.py
+++ b/searx/plugins/limiter.py
@@ -42,15 +42,15 @@ def is_accepted_request(inc_get_counter) -> bool:
             return False
         return True
 
-    c = inc_get_counter(interval=25, keys=[b'IP limit, all paths', x_forwarded_for])
-    if c > 30:
-        return False
+    if request.path == '/search' and ('q' in request.args or 'q' in request.form):
+        c = inc_get_counter(interval=20, keys=[b'IP limit, burst', x_forwarded_for])
+        if c > 30:
+            return False
 
-    c = inc_get_counter(interval=60, keys=[b'useragent limit, all paths', x_forwarded_for, user_agent])
-    if c > 30:
-        return False
+        c = inc_get_counter(interval=600, keys=[b'IP limit, 10 minutes', x_forwarded_for])
+        if c > 300:
+            return False
 
-    if request.path in ('/', '/search') and ('q' in request.args or 'q' in request.form):
         if re_bot.match(user_agent):
             return False