Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 66fdec0e authored by Markus Heiser's avatar Markus Heiser
Browse files

[mod] limiter: add config file /etc/searxng/limiter.toml

parent 1ec325ad
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -16,3 +16,4 @@ redis==4.5.5
markdown-it-py==2.2.0
typing_extensions==4.6.2
fasttext-predict==0.9.2.1
pytomlpp==1.0.13
+4 −1
Original line number Diff line number Diff line
@@ -13,12 +13,15 @@ Accept_ header ..
   https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept

"""
# pylint: disable=unused-argument

from typing import Optional, Tuple
import flask

from searx.tools import config

def filter_request(request: flask.Request) -> Optional[Tuple[int, str]]:

def filter_request(request: flask.Request, cfg: config.Config) -> Optional[Tuple[int, str]]:
    if 'text/html' not in request.accept_mimetypes:
        return 429, "bot detected, HTTP header Accept did not contain text/html"
    return None
+4 −1
Original line number Diff line number Diff line
@@ -14,12 +14,15 @@ bot if the Accept-Encoding_ header ..
   https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding

"""
# pylint: disable=unused-argument

from typing import Optional, Tuple
import flask

from searx.tools import config

def filter_request(request: flask.Request) -> Optional[Tuple[int, str]]:

def filter_request(request: flask.Request, cfg: config.Config) -> Optional[Tuple[int, str]]:
    accept_list = [l.strip() for l in request.headers.get('Accept-Encoding', '').split(',')]
    if not ('gzip' in accept_list or 'deflate' in accept_list):
        return 429, "bot detected, HTTP header Accept-Encoding did not contain gzip nor deflate"
+4 −2
Original line number Diff line number Diff line
@@ -11,13 +11,15 @@ if the Accept-Language_ header is unset.
   https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent

"""

# pylint: disable=unused-argument

from typing import Optional, Tuple
import flask

from searx.tools import config


def filter_request(request: flask.Request) -> Optional[Tuple[int, str]]:
def filter_request(request: flask.Request, cfg: config.Config) -> Optional[Tuple[int, str]]:
    if request.headers.get('Accept-Language', '').strip() == '':
        return 429, "bot detected, missing HTTP header Accept-Language"
    return None
+4 −2
Original line number Diff line number Diff line
@@ -11,13 +11,15 @@ the Connection_ header is set to ``close``.
   https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Connection

"""

# pylint: disable=unused-argument

from typing import Optional, Tuple
import flask

from searx.tools import config


def filter_request(request: flask.Request) -> Optional[Tuple[int, str]]:
def filter_request(request: flask.Request, cfg: config.Config) -> Optional[Tuple[int, str]]:
    if request.headers.get('Connection', '').strip() == 'close':
        return 429, "bot detected, HTTP header 'Connection=close'"
    return None
Loading