Vous n'êtes pas identifié.
Sécuriser les failles de type d'inclusion de fichier.
C'est une vulnérabilité très vieille, mais ça n'empêche pas de la trouver encore aujourd'hui.
Voici un exemple de code vulnérable :
<?php
if (isset($_GET['p']) && !empty($_GET['p']))
include ($_GET['p'].'.php');
else
include('home.php');
?>
Donc là c'est simple, la variable $_GET['p'] n'est pas vérifiée ni même traitée avant inclusion.
A partir de là, il est donc possible d'exécuter, de lire & d'écrire du code sur la machine vulnérable.
Pour remédier à ce problème il existe pas mal de méthode, certaines mieux que d'autre.
La meilleurs d'après moi reste la white liste.
Ça consiste à déclarer un array, et l'on y ajoute toutes les pages qu'on accepte de passer en paramètre à l'include.
Par exemple :
<?php
$page_allowed = array('home','membre','faq','contact');
if (isset($_GET['p']) && !empty($_GET['p']))
{
if (in_array($_GET['p'], $page_allowed))
{
include($_GET['p'].'.php');
}
else
{
include('404.php');
}
}
else
{
include('home.php');
}
?>
Donc là il n'y a plus aucun problème. C'est une méthode simpliste, mais ça a le mérite de marcher.
La fonction in_array se charge de confirmer que le fichier que l'on souhaite d'include à été décider part l'administrateur.