summaryrefslogtreecommitdiff
path: root/searx/botdetection/ip_limit.py
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2023-05-29 19:46:37 +0200
committerMarkus Heiser <markus.heiser@darmarit.de>2023-06-01 14:38:53 +0200
commit38431d2e142b7da6a9b48aad203f02a2eff7e6fd (patch)
tree102a00847e3d84747b814739d9c6dde465d7139b /searx/botdetection/ip_limit.py
parentb8c7c2c9aa604fd1fb7be5559c9ad025ceb17aa4 (diff)
[fix] correct determination of the IP for the request
For correct determination of the IP to the request the function botdetection.get_real_ip() is implemented. This fonction is used in the ip_limit and link_token method of the botdetection and it is used in the self_info plugin. A documentation about the X-Forwarded-For header has been added. [1] https://github.com/searxng/searxng/pull/2357#issuecomment-1566211059 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'searx/botdetection/ip_limit.py')
-rw-r--r--searx/botdetection/ip_limit.py6
1 files changed, 2 insertions, 4 deletions
diff --git a/searx/botdetection/ip_limit.py b/searx/botdetection/ip_limit.py
index e7fa57187..268285dd9 100644
--- a/searx/botdetection/ip_limit.py
+++ b/searx/botdetection/ip_limit.py
@@ -49,7 +49,7 @@ from searx import logger
from searx.redislib import incr_sliding_window, drop_counter
from . import link_token
-from ._helpers import too_many_requests
+from ._helpers import too_many_requests, get_real_ip
logger = logger.getChild('botdetection.ip_limit')
@@ -89,9 +89,7 @@ def filter_request(request: flask.Request, cfg: config.Config) -> Optional[werkz
# pylint: disable=too-many-return-statements
redis_client = redisdb.client()
- client_ip = request.headers.get('X-Forwarded-For', '')
- if not client_ip:
- logger.error("missing HTTP header X-Forwarded-For")
+ client_ip = get_real_ip(request)
if request.args.get('format', 'html') != 'html':
c = incr_sliding_window(redis_client, 'ip_limit.API_WONDOW:' + client_ip, API_WONDOW)