je me pose la question si le code suivant contient une faille de sécurité ou non:
Code : Tout sélectionner
include("./modules/command.".$_REQUEST["p"].".mod.php");
Code : Tout sélectionner
include("./modules/command.".$_REQUEST["p"].".mod.php");
<?php
/* Je stocke l'ensemble de mes pages dans un array
Le visiteur ne verra que l'index du tableau (home, news, contact)
*/
$tab_page = array('home'=>'page1.php', 'news'=>'page2.php', 'contact'=>'page3.php');
/* Je vérifie si la variable page est passée par la méthode GET (voir POST si ça l'est par
un formulaire), et je vérifie si la clé demandée existe (voir tableau -> home, news et contact)
*/
if ( (isset($_GET['page'])) && (array_key_exists($_GET['page'], $tab_page)) ){
/* Je vérifie si le fichier correspondant à la clé demandée existe bien et si il est
accessible en lecture
*/
if ( (file_exists($tab_page{$_GET['page']})) && (is_readable($tab_page{$_GET['page']})) ){
// Tout se passe bien, je l'inclus
include($tab_page{$_GET['page']});
}
else
{
echo 'La page '.$_GET['page'].' est introuvable ou n\'est pas accessible';
}
}
?>
totalement sécurisé, enfin je pense... vos avis sont les bienvenues... corrigez moi mais pas sur mes fesses d'éléphanteau:PCode : Tout sélectionner
include("./includes/".$_REQUEST["p"]);
Code : Tout sélectionner
include("./modules/command.".$_REQUEST["p"].".mod.php");