From a02a2f5a9637593d4b8eb41502e04e9f10750174 Mon Sep 17 00:00:00 2001 From: "Michael S. Molina" <70410625+michael-s-molina@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:49:10 -0300 Subject: [PATCH] chore: Reduces the form_data_key length (#31905) --- superset/key_value/shared_entries.py | 3 ++- superset/key_value/utils.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/superset/key_value/shared_entries.py b/superset/key_value/shared_entries.py index c2acafa80..21a41b560 100644 --- a/superset/key_value/shared_entries.py +++ b/superset/key_value/shared_entries.py @@ -42,6 +42,7 @@ def set_shared_value(key: SharedKey, value: Any) -> None: def get_permalink_salt(key: SharedKey) -> str: salt = get_shared_value(key) if salt is None: - salt = random_key() + # Use a 48 bytes salt + salt = random_key(48) set_shared_value(key, value=salt) return salt diff --git a/superset/key_value/utils.py b/superset/key_value/utils.py index e0ccbd1f5..e7be47311 100644 --- a/superset/key_value/utils.py +++ b/superset/key_value/utils.py @@ -31,8 +31,14 @@ from superset.utils.json import json_dumps_w_dates HASHIDS_MIN_LENGTH = 11 -def random_key() -> str: - return token_urlsafe(48) +def random_key(nbytes: int = 8) -> str: + """ + Generate a random URL-safe string. + + Args: + nbytes (int): Number of bytes to use for generating the key. Default is 8. + """ + return token_urlsafe(nbytes) def get_filter(resource: KeyValueResource, key: Key) -> KeyValueFilter: