FlorentG a écrit :
Attention à l'énorme faille de sécurité
Tu exabuses un p'tit peu : c'est une toute ch'tite faille !
Et je suis bien sûr que Trolll teste ses variables avant de les utiliser
...
Sinon Trolll , d'après ce que j'en comprends, tu n'as pas besoin de récupérer la variable
$_SERVER['REQUEST_URI']. A priori tu as la page index.php qui, en fonction de var1 (dossier), var2 (fichier) et éventuellement var3 (n° de page) fait un
include correspondant, non ? Donc pour rajouter ta variable var3 il suffit de la concaténer aux 2 précédentes, par exemple :
<?php
$dossier = (isset($_GET['var1'])) ? $_GET['var1'] : '';
$fichier = (isset($_GET['var2'])) ? $_GET['var2'] : '';
$numpage = (isset($_GET['var3'])) ? $_GET['var3'] : 0;
// Si dossier ou fichier contiennent des caractères incorrects, hacker possible :
if( (preg_match('`[^a-z0-9]`', $dossier)) || (preg_match('`[^a-z0-9]`', $fichier)) )
{
$dossier = '';
$fichier = '';
$numpage = 0;
}
// Si dossier inexistant, hacker possible :
if( !is_dir($dossier) )
{
$dossier = '';
$fichier = '';
$numpage = 0;
}
// Si fichier inexistant, hacker possible :
if( !is_file($dossier.'/'.$fichier.'.php') )
{
$dossier = '';
$fichier = '';
$numpage = 0;
}
// Pour créer le lien vers la page suivante :
$next = 'index.php?var1='.$dossier.'&var2='.$fichier.'&var3='.($numpage+1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
...
Tu remarqueras qu'il y a des tests sur les variables (à part pour numpage
) et que l'extension
.php est rajoutée dans le code...
A+