alpha_full/admin/adminInclude/Outillage/htmlspecialchars_ChatGPT.txt
2026-04-06 22:58:51 +02:00

101 lines
3.6 KiB
Plaintext
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Cahier des charges — Script de sécurisation HTML par htmlspecialchars()
------------------------------------------------------------------------
1. Objectif :
-------------
Créer un script PHP qui :
- Parcourt un répertoire source récursivement.
- Identifie tous les champs dans les fichiers `.php` à protéger contre l'injection HTML :
- <input> (tous types : text, hidden, checkbox, radio)
- <textarea>
- <option> dans un <select>
- Attributs : title, alt
2. Répertoires :
----------------
Répertoire à scanner :
/datas/07Prod/wwwRoot/alpha.wbAdm
Fichier log du traitement (mode réel) :
/datas/07Prod/wwwRoot/alpha.wbAdm/admin/adminInclude/Outillage/htmlSpecialChars.txt
Fichier log de simulation :
/datas/07Prod/wwwRoot/alpha.wbAdm/admin/adminInclude/Outillage/htmlSpecialChars_simulation.txt
3. Fichiers à traiter :
-----------------------
- Tous les fichiers ayant lextension `.php`.
- Ignorer tous les autres types de fichiers.
4. Dossiers à exclure (à ne pas parcourir ni traiter) :
--------------------------------------------------------
- /admin/adminInclude/makeCss
- /Catalogue/src
- /Design/src
- /_var/sauvegardes
- /admin/adminInclude/Outillage
- /admin/themes/dumpTheme/
- /_var/factures123/
- /_var/facturesSite/
5. Règles de traitement :
--------------------------
Pour chaque fichier .php :
- Rechercher les lignes contenant les balises ou attributs concernés.
- Vérifier si la valeur est injectée via PHP (ex: <?=$var?> ou '.$var.').
- Vérifier que `htmlspecialchars()` nest pas déjà utilisé.
- Sinon, modifier en encapsulant la variable avec `htmlspecialchars()` et en vérifiant que la valeur est non null, non vide
Transformations attendues :
<input value="<?=$val?>"> devient value="<?=htmlspecialchars($val)?>">
<textarea><?=$text?></textarea> devient <textarea><?=htmlspecialchars($text)?></textarea>
<option value="<?=$id?>"> devient <option value="<?=htmlspecialchars($id)?>">
<input type="checkbox" value="<?=$val?>"> idem
alt="<?=$txt?>" devient alt="<?=htmlspecialchars($txt)?>"
title="<?=$txt?>" devient title="<?=htmlspecialchars($txt)?>"
- Si la valeur est statique (ex: value="texte") :
Remplacer par : <?=htmlspecialchars("texte")?>
- Si aucun code PHP n'est présent, l'ajouter avec <?= ... ?>
- La gestion de balises avec attributs multiples,
- L'analyse de code multi-lignes ou enchevêtré,
- des variables doubles, du type "'.$var1.'" "'.$var2.'"
6. Comportement général :
--------------------------
- Le script est lancé via :
/datas/07Prod/wwwRoot/alpha.wbAdm/admin/adminInclude/Outillage/htmlSpecialChars.php
- Au lancement, il propose deux modes :
1. Simulation : génère uniquement le rapport, sans modifier les fichiers.
2. Traitement réel : modifie les fichiers et génère un rapport de traitement.
- Le script applique les règles dexclusion de fichiers et dossiers.
- Pour chaque balise détectée :
- Si mode simulation :
Créer le fichier htmlSpecialChars_simulation.txt contenant :
- Fichier concerné
- Ligne analysée (avec numéro de ligne)
- Proposition de remplacement
- Statut : modifié / déjà protégé / ignoré
- Si mode réel :
- Modifier les fichiers concernés
- Générer le fichier htmlSpecialChars.txt
7. Rapport de traitement (console + fichier log) :
---------------------------------------------------
- Nombre total de balises analysées
- Nombre total de balises modifiées
- Nombre total de balises ignorées
- Liste des fichiers modifiés (avec chemin)
- Durée totale du traitement (en secondes, arrondi à 2 décimales)
8. Fin du cahier des charges
-----------------------------