[intégrée] Prop0037 - Ne pas journaliser les erreurs d'identifiant ou mot de passe

Statut : intégrée dans la 4.8.0

Porteur principal : Laurent Groleau

Porteur secondaire : ?

Résumé

Ne pas journaliser une erreur quand l’identifiant ou le mot de passe est erroné en authentification par annuaire.

Motivation

Le fichier journal error.log n’est censé recueillir que des erreurs “logicielles” telle qu’une requête SQL mal formée, une interface indisponible … là il s’agit d’une erreur d’utilisation. Si l’exploitation
surveille ce fichier, cela provoque une fausse alerte.

Pré-requis

A classer par la communauté en bogue ou évolution.

Proposition et implémentation

Dans core/om_application.class.php, la méthode connectDirectory()

En cas d’erreur de connexion, au lieu de toujours journaliser en DEBUG_MODE, qui entraine la journalisation dans le fichier error.log:

  • Si l’erreur de connexion est “Invalid credentials” journaliser en VERBOSE_MODE
  • Sinon journaliser en DEBUG_MODE (interface LDAP indisponible)

Branche: prop0036_invalid_credential_verbose_mode basée sur OM 4.6.3

Risques

Aucun, sauf à vouloir :slight_smile:
-surveiller les erreurs d’identifiant ou de mot de passe comme des tentatives d’intrusion, ce qui relève plus d’un firewall applicatif à détection heuristique.
-surveiller la bonne écriture du fichier error.log en déclenchant une erreur volontairement

Quelques notes supplémentaires:

  • La branche a été renommée en prop0037_invalid_credential_verbose_mode
  • Avant correction, en cas d’authentification locale (sans LDAP), en cas d’erreur de mot de passe, rien n’est journalisé
  • La correction ne change pas la détection d’erreur sur la chaine “invalid credential”, utilisée pour moduler le message, seulement le niveau de journalisation associé.

Rebase sur la branche d’intégration 4.8.0 :

L’important dans le log (fichier niveau DEBUG) de l’information qui n’est plus tracée avec cette proposition était de savoir lorsque la connexion à l’annuaire échouait avec les identifiants et mots de passe saisi dans le script de configuration directory.inc.php. J’ai donc ajouté un log (fichier niveau DEBUG) dans la méthode de synchronisation pour ne pas perdre cette information :

Merge dans la branche d’intégration 4.8.0 :

Suppression de la branche :