security: _validate_import_line_or_throw logs credential fields at DEBUG level

Ouverte Adaptée aux débutants
#1,829 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Calme
Stack technique
python
Domaine
security

Piste de recherche

Commencez par UserItem.CSVImport._validate_import_line_or_throw et inspectez chaque journal DEBUG du logger fourni par l’appelant, y compris les appels atteints via validate_file_for_import. Le travail est terminé lorsque les valeurs de mot de passe des lignes CSV importées sont masquées ou omises dans les représentations journalisées, tandis que le comportement de validation reste inchangé.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

in-progress

Problem

UserItem.CSVImport._validate_import_line_or_throw (and by extension validate_file_for_import) accepts a caller-supplied logger and logs validation details at DEBUG level. The raw CSV values passed in include the password column (column index 1) from user-import files.

If a caller passes a logger with DEBUG enabled — common in development or verbose CI environments — passwords from the import CSV are written to the log output.

Proposed fix

Before any logging in _validate_import_line_or_throw, mask or omit the password field. For example, replace it with "***" in any debug-logged representation of the line:

def _safe_log_line(values):
    masked = list(values)
    if len(masked) > UserItem.CSVImport.ColumnType.PASSWORD:
        masked[UserItem.CSVImport.ColumnType.PASSWORD] = "***"
    return masked

This is a narrow fix — it does not change validation logic, only what gets emitted to the log.

Langage dominant
Python
Étoiles
716
Forks
446
Merge moyen
8 j 8 h
PR mergées (30 j)
2

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de tableau/server-client-python

Toutes les issues de tableau/server-client-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.