Merge pull request #899 from dalf/limiter_update

[limiter] update
This commit is contained in:
Alexandre Flament 2022-02-18 22:17:26 +01:00 committed by GitHub
commit 29182eb1c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 9 deletions

View File

@ -42,19 +42,16 @@ def is_accepted_request(inc_get_counter) -> bool:
return False return False
return True return True
if request.path == '/search' and ('q' in request.args or 'q' in request.form): if request.path == '/search':
c = inc_get_counter(interval=20, keys=[b'IP limit, burst', x_forwarded_for]) c_burst = inc_get_counter(interval=20, keys=[b'IP limit, burst', x_forwarded_for])
if c > 30: c_10min = inc_get_counter(interval=600, keys=[b'IP limit, 10 minutes', x_forwarded_for])
return False if c_burst > 15 or c_10min > 150:
c = inc_get_counter(interval=600, keys=[b'IP limit, 10 minutes', x_forwarded_for])
if c > 300:
return False return False
if re_bot.match(user_agent): if re_bot.match(user_agent):
return False return False
if 'Accept-Language' not in request.headers: if len(request.headers.get('Accept-Language', '').strip()) == '':
return False return False
if request.headers.get('Connection') == 'close': if request.headers.get('Connection') == 'close':
@ -113,7 +110,6 @@ def create_pre_request(get_aggregation_count):
def init(app, settings): def init(app, settings):
if not settings['server']['limiter']: if not settings['server']['limiter']:
return False return False