Quotidien Shaarli

Tous les liens d'un jour sur une page.

September 9, 2025

À la découverte de Hunspell et autres spell checkers

Ce billet explore le fonctionnement des correcteurs orthographiques comme Hunspell, utilisé dans LibreOffice, Firefox ou macOS, à travers l’exemple de la langue albanaise, riche en déclinaisons. Hunspell, héritier de MySpell et ISpell, vérifie l’orthographe des mots à partir de fichiers .dic (liste de mots) et .aff (règles de flexion), permettant de générer de nombreuses formes à partir de peu de données. L’article détaille son installation, son utilisation avec des dictionnaires spécifiques (comme l’albanais), et ses limites : il valide les mots isolément, sans vérifier la cohérence grammaticale d’une phrase. Un outil open source puissant, mais à utiliser en connaissance de cause, surtout pour les langues complexes ou peu documentées.

Keeping Secrets Out of Logs - allan.reyes.sh

L'auteur explique qu’il n’existe pas de solution miracle pour empêcher les données sensibles (mots de passe, clés API, PII) d’apparaître dans les logs, mais une combinaison de "balles de plomb" — des mesures ciblées et complémentaires — permet de réduire significativement les risques. Il identifie d’abord les causes courantes : logs directs accidentels, objets "éviers de cuisine" (comme les erreurs HTTP contenant des configurations sensibles), changements de niveau de log, secrets intégrés dans des URLs ou des télémetries, ou encore les entrées utilisateurs imprévisibles.

Pour y remédier, il propose 10 pistes :

  • Architecture des données : centraliser les flux de logs pour mieux les contrôler.
  • Transformations : minimisation, rédactions, tokenisation ou masquage des données avant logging.
  • Primitives de domaine : encapsuler les secrets dans des objets dédiés (ex. Secret) pour empêcher leur logging accidentel, avec des vérifications à la compilation ou à l’exécution.
  • Objets à lecture unique : des wrappers qui bloquent l’accès au secret après sa première utilisation.
  • Vérification de souillure (taint checking) : analyser statiquement les flux de données pour détecter les fuites vers les logs.
  • Formatteurs de logs : filtrer ou redacter automatiquement les champs sensibles dans les pipelines de logging.
  • Tests unitaires : faire échouer les tests si des secrets sont détectés dans les sorties.
  • Scanners de données sensibles : outils comme TruffleHog pour détecter a posteriori les fuites, avec échantillonnage pour optimiser les coûts.
  • Prétraitement des logs : nettoyer les flux avant stockage (ex. avec Vector).
  • Sensibilisation des équipes : former les devs et leur donner les outils pour signaler et corriger les problèmes.

La stratégie globale repose sur 4 piliers :

  1. Poser les bases (culture sécurité, définition des "secrets", logs structurés).
  2. Cartographier les flux de données pour identifier les points critiques.
  3. Protéger les goulots d’étranglement (ex. pipeline centralisé de logs) avec des contrôles en profondeur.
  4. Prévoir la réponse aux incidents : isolation, nettoyage, analyse post-mortem.

En combinant ces approches — et en acceptant que le "zéro fuite" soit un idéal —, on limite efficacement les risques, tout en renforçant la résilience globale du système.