diff --git a/src/opengnsys/modules/server/OpenGnSys/__init__.py b/src/opengnsys/modules/server/OpenGnSys/__init__.py index 438d50a..5253f3f 100644 --- a/src/opengnsys/modules/server/OpenGnSys/__init__.py +++ b/src/opengnsys/modules/server/OpenGnSys/__init__.py @@ -358,7 +358,14 @@ class OpenGnSysWorker(ServerWorker): """ logger.debug('Processing script request') # Decoding script - script = urllib.parse.unquote(base64.b64decode(post_params.get('script')).decode('utf-8')) + param_script = post_params.get('script') + if not param_script: + return {'op': 'error', 'err': 'Required parameter "script" is missing or empty'} + try: + b64decoded = base64.b64decode (param_script) + except Exception as e: + return {'op': 'error', 'err': f'Failed to decode base64: {e}'} + script = urllib.parse.unquote (b64decoded.decode ('utf-8')) logger.debug('received script "{}"'.format(script)) if post_params.get('client', 'false') == 'false':