je viens d'adapter le style switcher sur Plume CMS :
http://www.nekodesign.net/?/Plume-webdev/switcher

il semblerai qu'il y ai une faille de sécurité au niveau du contrôle de la variable passée en post ..c'est le créateur de plume cms en personne (loïc aka titoo) qui soulève le problème sur mon thread (forum de plume)
http://plume-cms.net/forum/read.php?2,2286

qq'un a t il une solution sur la modif à faire dans le code php du switcher
Modifié par robby (13 Nov 2005 - 20:43)
Administrateur
Je n'ai pas compris. Il s'agit du Style Switcher proposé sur Alsacréations ?

EDIT : L'auteur, Olivier, n'est pas trop dispo en ce moment. Il se penchera dessus à son retour dans 4-5 jours.
Tu as des détails précis sur ce problème ?
Modifié par Raphael (28 Oct 2005 - 22:37)
salut
effectivement il ya un probleme de securité
le solution proposer fait appel au reg_exp et fonctionne bien
mais sinon je pense que le simple fait d'addslashes la variable devrai suffir
mais l'autre solution est plus sur
=>raphael : oui il s'agit du switcher d'alsa
je viens de voir que tu as répondu au thread sur le forum de plume

jeff =>merci, mais c'est du chinois pour moi, faudrai le code définitif du switcher (creation du cookie) avec la modif
j'ai pas un assez bon niveau de php pour résoudre le problème

dès que qq'un à la solution.....merci

(ah au fait, je rappel l'url de mon tuto sur ce switcher :
http://nekodesign.net/?/Plume-webdev/switcher
Modifié par robby (29 Oct 2005 - 13:36)
La solution d'utiliser une expression régulière est un peu lourde (gaspille des ressources pour rien) et même légèrement compliqué, pour simplement vérifier que la chaîne entrée ne puisse pas aller "fouiller" le serveur.

Utilisez donc plutôt dirname() ou basename() (un des deux, mais allez savoir lequel) :
if(file_exists("./xmedia/theme/".$_POST['style']."/style.css"))

...À remplacer par :
if (file_exists('./xmedia/theme/'.basename($_POST['style']).'/style.css'))


(De toute façon, même sans, je ne comprend pas comment on pourrait exploiter cette faille puisque le serveur recherchera un fichier dont le nom se termine par "/style.css", ce qui est fort improbable à mon avis ! Il faut vraiment le renommer comme ça dans le FTP...)
Modifié par Nyro Xeo (07 Nov 2005 - 15:16)
ah enfin ! quelqu'un qui répond!!
je vai étudier tout ça , il faut bien remplacer telle
quel ta ligne proposée ?
merci
a+
Non mais il n'y a pas de faille. Le "/style.css" signifie que même si on remonte le repertoire, PHP va chercher un fichier qui s'appelle "style.css" dans le repertoire spécifié...

Et puis de toute façon, même en imaginant que ce soit possible, tout ce que la faille peut "exploiter", c'est de savoir si un fichier existe ou pas, et s'il existe, cela ne fera qu'afficher le fichier dans l'attribut href du <link /> :
<?php
echo "		<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"".$css."/style.css\" />\n" ;
?>

...où $css est le repertoire. Donc il n'y a pas de risque.