Intermédiaire 8 min de lecture 25 janvier 2025

Sanitize text : nettoyer et sécuriser vos contenus texte

Champs de formulaire, réponses d'API, emails, CSV ou logs : sans sanitize text, de simples chaînes provoquent XSS, parsing bancal ou erreurs d'encodage. Sanitize text consiste à valider, normaliser, filtrer et échapper vos données pour qu’elles soient fiables à stocker, afficher et transmettre.

Qu'est-ce que le sanitize text ?

C’est l’ensemble des pratiques qui rendent un texte sûr et propre à l’usage : validation, nettoyage, normalisation et échappement adaptés au contexte (stockage, affichage, transport).

Quatre familles d’éléments à traiter systématiquement lors d’un sanitize text :

1 Espaces et séparateurs à normaliser

Réduire, uniformiser ou supprimer selon le contexte.

Espace (32), Tab (9), CR (13), LF (10)

2 Caractères de contrôle à filtrer

Supprimer ce qui n’est pas nécessaire aux flux (hors CR/LF/HT).

NUL (0), BEL (7), ESC (27), DEL (127)

3 Espaces et séparateurs Unicode non standard

À convertir en espace simple ou à supprimer selon le besoin :

NBSP (U+00A0) - Espace insécable
ZWSP (U+200B) - Zero Width Space
ZWNBSP (U+FEFF) - Zero Width No-Break Space
Thin Space (U+2009), Hair Space (U+200A)

4 Marques techniques et directions

À supprimer ou normaliser pour éviter les effets de bord :

BOM (U+FEFF) - Byte Order Mark
Soft Hyphen (U+00AD) - Tiret conditionnel
LRM, RLM, LRE, RLE - Contrôles Bidi

Problèmes classiques sans sanitize text

Entrées HTML non échappées (XSS)

Un contenu utilisateur injecté dans innerHTML déclenche du script à l’affichage.

CSV et parsers qui déraillent

NBSP, ZWSP ou caractères de contrôle cassent les colonnes et les séparateurs.

Trim/strip insuffisant

Ne traite pas les espaces Unicode, laissant des artefacts invisibles en base ou en UI.

Regex ou whitelists incomplètes

Manquent des blancs Unicode ou n’excluent pas les caractères inattendus.

Exemple de problème courant :

# Entrée utilisateur non nettoyée insérée en HTML
user = "<script>alert(1)</script>"
html = "<div>" + user + "</div>" # ❌ XSS
safe = sanitize_text(user); # ✅ échappement et nettoyage

Symptômes qui doivent vous alerter

🚨 Signaux d'alarme

!
Un diff git montre des changements invisibles après un copier-coller
!
Un parser CSV perd des colonnes ou des guillemets s’échappent mal
!
Votre application affiche du HTML interprété au lieu de texte brut
!
Des erreurs d'encodage apparaissent en base ou dans les exports
!
Un copier-coller dans un terminal produit une commande invalide

Comment pratiquer le sanitize text efficacement

Solution recommandée : Clean ASCII

Clean ASCII aide à repérer ce qui rend le sanitize text nécessaire : espaces invisibles, caractères de contrôle, symboles non-ASCII. Visualisez instantanément les éléments à normaliser ou supprimer, puis exportez un texte propre.

✅ Détection ciblée

NBSP, ZWSP, BOM, soft hyphens, contrôles et caractères hors plage

📊 Analyse utile

Codes Unicode, positions exactes, propositions de normalisation

🧹 Nettoyage assisté

Conversions intelligentes et suppression des caractères problématiques

💾 Export fiable

Texte nettoyé prêt pour stockage, affichage ou export

Autres méthodes de détection

Affichage dans l'éditeur

Activez "show invisibles" / "render whitespace" pour visualiser les espaces et contrôles
Utilisez un linter qui surligne NBSP, ZWSP et caractères hors plage

En ligne de commande (Unix)

# Traquer les octets hors ASCII imprimable
grep -P "[^\x09\x0A\x0D\x20-\x7E]" fichier.txt
# Visualiser fins de ligne et tabulations
sed -n l fichier.txt
# Afficher les caractères de contrôle
cat -A fichier.txt
# Inspecter les codes hexadécimaux
hexdump -C fichier.txt

En code

JavaScript

DOMPurify.sanitize(input)

Python

html.escape(s, quote=True)

Excel / Google Sheets

CLEAN(TRIM(SUBSTITUTE(cellule;CHAR(160);" ")))

Nettoyer et prévenir

🚀 Solution rapide avec Clean ASCII

Pour accélérer votre sanitize text, utilisez Clean ASCII : détectez, normalisez et supprimez les caractères piégeux en quelques secondes avant toute intégration.

Détection automatique
Nettoyage intelligent
Export immédiat

Méthodes techniques avancées

🔧 Normaliser

Appliquez Unicode NFC/NFKC pour homogénéiser les formes
Supprimez les BOM inutiles sur vos fichiers UTF-8
Uniformisez les fins de ligne (dos2unix, gitattributes)

🧹 Filtrer

Implémentez sanitize_text() avec whitelist/blacklist selon le contexte
Remplacez NBSP par espace simple et retirez ZWSP/contrôles
Évitez d’interpréter du markup : échappez HTML/CSV/SQL à la sortie

⚙️ Automatiser

Hooks pre-commit pour refuser des fichiers avec caractères indésirables
Tests de sanitation et de validation sur les entrées utilisateurs
Linting dans la CI pour signaler les caractères non conformes

Checklist rapide

Échappement HTML/CSV/SQL à la sortie selon le contexte
Normalisation Unicode (NFC/NFKC) et fins de ligne uniformes
Suppression des caractères de contrôle indésirables
Whitelist des caractères acceptés sur les champs critiques
Vérifications automatiques dans les tests et la CI
Documentation équipe sur sanitize text et encodages

Conclusion

Sanitize text réduit une large classe de bugs et de failles. En contrôlant ce qui entre et ce qui sort, vos traitements restent fiables et vos interfaces sûres.

Installez une sanitation systématique, normalisez vos flux et standardisez l’échappement par contexte : vous éliminez la majorité des problèmes de sécurité et d’encodage.

Sanitize text dès maintenant

Utilisez notre outil pour analyser, nettoyer et normaliser vos textes avant intégration ou diffusion.

Assainir mon texte