From b8818ff14eb3686147d5906a609300152e854c48 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Sun, 7 Mar 2021 17:23:25 -0500 Subject: [PATCH] updated argos, validate input JSON dict --- app/app.py | 12 +++++++++--- requirements.txt | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/app.py b/app/app.py index c9be8c7..72dbbc7 100644 --- a/app/app.py +++ b/app/app.py @@ -11,6 +11,12 @@ DetectorFactory.seed = 0 # deterministic api_keys_db = None +def get_json_dict(request): + d = request.get_json() + if not isinstance(d, dict): + abort(400, description="Invalid JSON format") + return d + def get_remote_address(): if request.headers.getlist("X-Forwarded-For"): ip = request.headers.getlist("X-Forwarded-For")[0] @@ -29,7 +35,7 @@ def get_routes_limits(default_req_limit, api_keys_db): if api_keys_db: if request.is_json: - json = request.get_json() + json = get_json_dict(request) api_key = json.get('api_key') else: api_key = request.values.get("api_key") @@ -232,7 +238,7 @@ def create_app(args): """ if request.is_json: - json = request.get_json() + json = get_json_dict(request) q = json.get('q') source_lang = json.get('source') target_lang = json.get('target') @@ -371,7 +377,7 @@ def create_app(args): description: Reason for slow down """ if request.is_json: - json = request.get_json() + json = get_json_dict(request) q = json.get('q') else: q = request.values.get("q") diff --git a/requirements.txt b/requirements.txt index 17525f7..cbddbb9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -argostranslate==1.1.2 +argostranslate==1.1.3 Flask==1.1.2 flask-swagger==0.2.14 flask-swagger-ui==3.36.0