fix(log): HuggingFace-Token und andere Geheimnisse nicht mehr im Klartext im Log
Die Bridge schrieb beim Config-Broadcast den kompletten Payload ins Log, inklusive huggingfaceToken. Jetzt werden Werte von Schluesseln wie token, secret, passw, apikey, credential als *** ausgegeben (Zaehler wie maxTokens bleiben sichtbar). Dasselbe fuer das Debug-Log der RVS-Nachrichten in der Diagnostic. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+15
-1
@@ -73,6 +73,20 @@ logging.basicConfig(
|
||||
logger = logging.getLogger("aria-bridge")
|
||||
|
||||
|
||||
# Schluessel, deren Werte nie ins Log duerfen (HF-Token, Passwoerter, API-Keys).
|
||||
_SECRET_KEY_RE = re.compile(r"token(?!s)|secret|passw|apikey|api_key|credential", re.I)
|
||||
|
||||
|
||||
def _redact(obj):
|
||||
"""Kopie von obj fuer Log-Zeilen: Geheimnis-Werte werden zu '***'."""
|
||||
if isinstance(obj, dict):
|
||||
return {k: ("***" if v and _SECRET_KEY_RE.search(str(k)) else _redact(v))
|
||||
for k, v in obj.items()}
|
||||
if isinstance(obj, list):
|
||||
return [_redact(v) for v in obj]
|
||||
return obj
|
||||
|
||||
|
||||
# ── TCP-Keepalive Helper ────────────────────────────────────
|
||||
#
|
||||
# Aktiviert TCP-Level Keepalive auf einer websockets-Verbindung mit
|
||||
@@ -1830,7 +1844,7 @@ class ARIABridge:
|
||||
"payload": payload,
|
||||
"timestamp": int(asyncio.get_event_loop().time() * 1000),
|
||||
})
|
||||
logger.info("[rvs] Persistierte Config broadcastet: %s", payload)
|
||||
logger.info("[rvs] Persistierte Config broadcastet: %s", _redact(payload))
|
||||
except Exception as e:
|
||||
logger.debug("[rvs] Config-Broadcast fehlgeschlagen: %s", e)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user