diff options
| author | Markus Heiser <markus.heiser@darmarit.de> | 2023-10-02 18:29:58 +0200 |
|---|---|---|
| committer | Markus Heiser <markus.heiser@darmarIT.de> | 2023-11-01 06:44:56 +0100 |
| commit | d13a8f64534b2ba7883cabdae1d08ea68b7899c8 (patch) | |
| tree | fa9148bf302c9b0af9352c7813ff19c9cb09b026 /searx | |
| parent | fd814aac863673047c46a9d80682415dae180969 (diff) | |
[mod] document server:public_instance & remove it out of the botdetection
- the option server:public_instance lacks some documentation
- the processing of this option belongs in the limiter and not
in botdetection module
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'searx')
| -rw-r--r-- | searx/__init__.py | 3 | ||||
| -rw-r--r-- | searx/botdetection/ip_limit.py | 3 | ||||
| -rw-r--r-- | searx/limiter.py | 20 |
3 files changed, 18 insertions, 8 deletions
diff --git a/searx/__init__.py b/searx/__init__.py index f86052660..d611ef6a2 100644 --- a/searx/__init__.py +++ b/searx/__init__.py @@ -108,5 +108,6 @@ else: if settings['server']['public_instance']: logger.warning( "Be aware you have activated features intended only for public instances. " - + "This force the usage of the bot limiter and link_token plugins." + "This force the usage of the limiter and link_token / " + "see https://docs.searxng.org/admin/searx.limiter.html" ) diff --git a/searx/botdetection/ip_limit.py b/searx/botdetection/ip_limit.py index 071978a33..387e580ee 100644 --- a/searx/botdetection/ip_limit.py +++ b/searx/botdetection/ip_limit.py @@ -45,7 +45,6 @@ from ipaddress import ( import flask import werkzeug -from searx import settings from searx import redisdb from searx.redislib import incr_sliding_window, drop_counter @@ -109,7 +108,7 @@ def filter_request( if c > API_MAX: return too_many_requests(network, "too many request in API_WINDOW") - if settings['server']['public_instance'] or cfg['botdetection.ip_limit.link_token']: + if cfg['botdetection.ip_limit.link_token']: suspicious = link_token.is_suspicious(network, request, True) diff --git a/searx/limiter.py b/searx/limiter.py index b61292d70..fa7418922 100644 --- a/searx/limiter.py +++ b/searx/limiter.py @@ -211,23 +211,33 @@ def pre_request(): def is_installed(): + """Returns ``True`` if limiter is active and a redis DB is available.""" return _INSTALLED def initialize(app: flask.Flask, settings): - """Instal the botlimiter aka limiter""" + """Install the limiter""" global _INSTALLED # pylint: disable=global-statement - if not settings['server']['limiter'] and not settings['server']['public_instance']: + + if not (settings['server']['limiter'] or settings['server']['public_instance']): return + redis_client = redisdb.client() if not redis_client: logger.error( "The limiter requires Redis, please consult the documentation: " - + "https://docs.searxng.org/admin/searx.botdetection.html#limiter" + "https://docs.searxng.org/admin/searx.limiter.html" ) if settings['server']['public_instance']: sys.exit(1) return - botdetection.init(get_cfg(), redis_client) - app.before_request(pre_request) + _INSTALLED = True + + cfg = get_cfg() + if settings['server']['public_instance']: + # overwrite limiter.toml setting + cfg.set('botdetection.ip_limit.link_token', True) + + botdetection.init(cfg, redis_client) + app.before_request(pre_request) |