Titre: Comment faire un include('$variable.php') ??
Posté par: frankypotter le le 13-04-2005 a 22:45:39
Bonjour,
J'essaie de créer un code PHP dans lequel j'inclue la page $variable.php (par exemple, si ma variable est «accueil», je veux inclure la page «accueil.php»)
Est-ce que c'est supposé de fonctionner avec le code suivant? :
Code:
<?php
$variable = $_GET["variable"]
include('$variable.php')
?>
|
|
Comment faire pour que PHP ne pense pas que ma variable est $variable.php, mais bien $variable ?
En résumé, je veux ajouter l'extension .php à ma variable.
Merci beaucoup ;)
François responsable de www.webmaster101.tk (encore en construction au moment où j'écris ce message). |
Titre: Re:Comment faire un include('$variable.php') ??
Posté par: vertigo_76 le le 13-04-2005 a 22:52:20
Salut
tu fais : include($variable.'.php');
ca devrais marcher maintenant
+ |
Titre: Re:Comment faire un include('$variable.php') ??
Posté par: POde.uk le le 17-04-2005 a 20:44:23
attention à la faille :)
la rêgle d'or en web quand tu récupères des informations de l'utilisateur est de ne jamais leur faire confiance.
dans ton cas tu récupères une variable en get, qui vient donc de l'url, qui est une donnée saisie par l'utilisateur, donc danger il faut faire attention quand tu l'utilises.
dans ta navigation tu passes des valeurs comme accueil à variable, ce qui aura pour effet avec ton code d'inclure accueil.php, bien c'est ce que tu voulais.
Mais admettons qu'un utilisateur mal intentionné passe comme valeur à variable : http://toto.com/pascool et que pascool soit sur son server un fichier .php (http://toto.com/pascool.php)
ton script va donc tout bêtement inclure ce fichier, qui peut contenir n'importe quoi, comme un unlink("index.php"). Donc en passant cette valeur à ta variable il va par exemple effacer l'index de ton site :) un piratage à la portée de tout un chacun :(
Pour sécuriser ça, rien de plus simple :
tu fais un tableau qui va contenir les différentes pages qu'il est possible d'inclure, par exemple tu as accueil, cv, galerie.
Code:
$pages['accueil'] = "accueil.php"; $pages['cv'] = "cv.php"; $pages['galerie'] = "galerie.php";
if (!include($pages[$_GET['variable'])) { //fais ce que tu veux, comme inclure une page par défaut }
|
|
la variable est donc un index de tableau, et si par hasard quelqu'un s'amuse à passer quoi que ce soit d'autre comme variable, celle-ci ne correspondra à aucune entrée du tableau... donc l'include ne marchera pas et là tu fais ce que tu veux, comme inclure une page par défaut... |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|