Bonjour,

Voila je voudrais développer une petite fonction qui permet de lier l'ensemble de mes variables à la fonction htmlspecialchars().

je pose le contexte : je travail actuellement sur un parc informatique de 80 sites internets similaire à un CMS.. Smiley lol .

Ma boite étant assez ancienne et chaque site copier/coller en fonction des premiers sites, la plupart des variables non pas été sécurisées Smiley fache .
Je parle de sites complets où les variables se comptent par millier, le tout sur 80 sites, je n'imagine pas une seul seconde devoir modifier 100 000 variable... Smiley biggol

J'aimerais donc écrire une fonction qui dit : à chaque variable ( à chercher par rapport au signe $ )
on l'entoure de la fonction htmlspecialchars() Smiley ravi

J'ai déjà du travail et avant de me lancer dans des regex ou autres méthodes hazardeuses, j'aimerais recueillir des informations sur le sujet et savoir dors et déjà si c'est possible ou trop complex.

Voila, j'attends donc toutes vos réponses avec impatience sans pour autant que cela soit une urgence Smiley biggrin

Merci encore pour votre soutient ! Smiley smile
Ce que tu proposes est aux failles XSS ce que magic quotes est aux failles d'injection SQL. Ca peut protéger un peu, mais au final on se rend comtpe que ça ajoute plus de problèmes que ça n'en résoud, et que ce n'est pas vraiment la bonne technique pour sécuriser un site.

Cela dit, ce que tu souhaites faire est tout à fait possible; pas exactement de la manière proposée, mais quand même.

Avec l'entrée auto_prepend_file du php.ini
http://fr.php.net/manual/en/ini.core.php#ini.auto-prepend-file
tu peux indiquer un fichier qui sera toujours exécuté en premier avant le fichier effectivement appelé. Et dans ce fichier, rien ne t'interdit à priori d'appliquer htmlspecialchars à toutes les valeurs des tableaux $_GET, $_POST, etc.

Pour sécuriser ce qui vient des bases de données, j'espère pour toi que tu utilises soit PDO, soit mysqli. Pour les deux il y a moyen de surcharger les fonctions de retour pour appliquer préventivement htmlspecialchars; je te laisse te renseigner dans la doc.

Si tu utilises l'ancienne API mysql, tu es cuit par contre; à moins d'utiliser redefine_function et rename_function qui sont accessibles uniquement dans des versions et des plugins bien spécifiques de php; bref vraiment pas conseillé.

Ca reste malgré tout une mauvaise façon de procéder, la meilleure façon serait bien sûr de revoir tout le code !
Bonjour !

Merci pour ta réponse, je suis tout à fait d'accord avec ta conclusion : objectif revoir tout le code.

Pour faciliter la procédure je vais centraliser un site de base qui seront inclus dans l'ensemble des sites.

Mon patron pense que c'est une faille de sécurité de faire : include('../site_central/index.php') ;

Personnellement je pense que tant qu'il n 'y à pas de variable cela ne pose pas de problème particulier qu'en penses-tu ?
a écrit :
Mon patron pense que c'est une faille de sécurité de faire : include('../site_central/index.php') ;

Il n'y a pas de variable issue de données utilisateur, je ne vois pas où il peut y avoir un risque. Si le fichier indiqué a pu être modifié à ton insu, la faille est assurément ailleurs.

par contre, certains pensent que faire référence à des fichiers se trouvant plus haut dans l'arborescence des dossiers est une mauvaise pratique. Le safe mode de php empêche ce genre d'inclusion, mais je crois qu'il est déprécié en php 5.4 ou 5.5 et en tous les cas il donne une mauvaise impression de sécurité donc à éviter.

Personnellement je ne vois pas en quoi c'est un problème; mais bon, je ne suis pas (encore) professionel.