mirror of
https://github.com/LibreTranslate/LibreTranslate.git
synced 2025-06-07 23:27:53 +00:00
Add fingerprinting mechanism
This commit is contained in:
parent
da0890d60f
commit
f2268fe4d9
8 changed files with 65 additions and 20 deletions
|
@ -102,6 +102,9 @@ def get_remote_address():
|
|||
|
||||
return ip
|
||||
|
||||
def get_fingerprint():
|
||||
return request.headers.get("User-Agent", "") + "|" + request.headers.get("Cookie", "")
|
||||
|
||||
|
||||
def get_req_limits(default_limit, api_keys_db, db_multiplier=1, multiplier=1):
|
||||
req_limit = default_limit
|
||||
|
@ -348,12 +351,17 @@ def create_app(args):
|
|||
and not secret.secret_match(req_secret)
|
||||
):
|
||||
need_key = True
|
||||
|
||||
if secret.secret_bogus_match(req_secret):
|
||||
abort(make_response(jsonify({
|
||||
'translatedText': secret.get_emoji(),
|
||||
'alternatives': [],
|
||||
'detectedLanguage': { 'confidence': 100, 'language': 'en' }
|
||||
}), 200))
|
||||
|
||||
if args.require_api_key_fingerprint:
|
||||
if flood.fingerprint_mismatch(ip, get_fingerprint()):
|
||||
need_key = True
|
||||
|
||||
if need_key:
|
||||
description = _("Please contact the server operator to get an API key")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue