searxng/searx
Markus Heiser 14323d683f [fix] ddg-lite & ddg-extra: don't send empty vqd value
DDG's bot detection is sensitive to the vqd value.  For some search terms (such
as extremely long search terms that are often sent by bots), no vqd value can be
determined.

If SearXNG cannot determine a vqd value, then no request should go out to
DDG (WEB): a request with a wrong vqd value leads to DDG temporarily putting
SearXNG's IP on a block list.

Requests from IPs in this block list run into timeouts.

Not sure, but it seems the block list is a sliding window: to get my IP rid from
the bot list I had to cool down my IP for 1h (send no requests from that IP to
DDG).

Since such issues can't reproduce in a local instance I tested this patch 24h on
my public SearXNG instance: There are still errors (rare), but the reliability
is still 100%.

Related:

- https://github.com/searxng/searxng/pull/2922
- https://github.com/searxng/searxng/pull/2923

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-10-12 08:52:28 +02:00
..
answerers [mod] random answerer: add random hex color generator 2023-08-27 18:59:54 +02:00
botdetection [fix] limiter / botdetection: remove http_connection method 2023-10-01 20:24:22 +02:00
data [feat] duckduckgo: support for videos and news 2023-10-09 06:53:43 +02:00
enginelib [fix] spelling 2023-09-18 16:20:27 +02:00
engines [fix] ddg-lite & ddg-extra: don't send empty vqd value 2023-10-12 08:52:28 +02:00
infopage [mod] search-syntax.md: add tutorial about the feeling lucky feature 2023-09-21 15:17:23 +02:00
metrics [fix] spelling 2023-09-18 16:20:27 +02:00
network [fix] spelling 2023-09-18 16:20:27 +02:00
plugins add new parameter called server.public_instance 2023-09-25 22:31:14 +02:00
search [feat] implement feeling lucky feature 2023-09-19 09:40:57 +02:00
static [build] /static 2023-09-25 17:45:21 +02:00
templates/simple [fix] categories.html: can't select social media category using search on category select 2023-09-28 10:45:49 +02:00
tools [mod] tools.Config.get(): add missing type annotations 2023-06-05 14:07:19 +02:00
translations [translations] update from Weblate 2023-10-06 09:19:00 +02:00
__init__.py add warning about enabling public_instance setting 2023-09-25 22:31:14 +02:00
autocomplete.py [doc] add documentation of Mwmbl engine & autocompleter 2023-08-27 17:25:26 +02:00
babel_extract.py [mod] move category and names of constants to searx/searxng.msg 2022-03-16 09:55:53 +01:00
compat.py [fix] pyright repported errors 2022-07-30 18:04:44 +02:00
exceptions.py [fix] spelling 2023-09-18 16:20:27 +02:00
external_bang.py [mod] external bang: go to main instead of search page when query is empty 2023-04-25 15:02:34 +02:00
external_urls.py [fix] typos / reported by @kianmeng in searx PR-3366 2022-09-27 18:32:14 +02:00
flaskfix.py [format.python] initial formatting of the python code 2021-12-27 09:26:22 +01:00
locales.py [fix] spelling 2023-09-18 16:20:27 +02:00
preferences.py [mod] add hotkeys option to settings.yml 2023-10-09 18:13:00 +02:00
query.py [feat] implement feeling lucky feature 2023-09-19 09:40:57 +02:00
redisdb.py move searx.shared.redisdb to searx.redisdb 2022-12-10 09:26:38 +01:00
redislib.py [fix] spelling 2023-09-18 16:20:27 +02:00
results.py [mod] move some code from webapp module to webutils module (no functional change) 2023-06-19 19:49:44 +02:00
searxng.msg [mod] clarify the difference of the default category and subgrouping 2023-04-07 11:03:25 +02:00
settings.yml [mod] yacy: use official instance by default and fix crashes 2023-10-09 20:50:24 +02:00
settings_defaults.py [mod] add hotkeys option to settings.yml 2023-10-09 18:13:00 +02:00
settings_loader.py [fix] spelling 2023-09-18 16:20:27 +02:00
sxng_locales.py Update searx.data - update_engine_traits.py 2023-09-27 09:12:38 +02:00
unixthreadname.py [format.python] initial formatting of the python code 2021-12-27 09:26:22 +01:00
utils.py [fix] spelling 2023-09-18 16:20:27 +02:00
version.py [fix] typos in documentation & messages 2023-08-13 08:50:29 +02:00
webadapter.py [feat] implement feeling lucky feature 2023-09-19 09:40:57 +02:00
webapp.py add new parameter called server.public_instance 2023-09-25 22:31:14 +02:00
webutils.py [fix] implement a JSONEncoder for the json format 2023-06-19 19:49:44 +02:00