• [^] # Re: faille

    Posté par (courriel, site web personnel) . En réponse au journal Le net est un endroit mal fréquenté.. Évalué à 2.

    Moi ce que je fais c'est un tableau associatif avec comme clé un nom de page et rien en contenu. La première clé du tableau est la page par défaut (mais on peut remplacer par une 404, suffit de pas envoyer les headers HTTP avant). Genre:
    if (!isset($_GET['pg']) || !in_array($_GET['pg'], $valid_pages))
     $pg = $valid_pages[0];
    else
     $pg = $_GET['pg'];
    require("includes/pages/$pg.inc.php");
    Evidemment si global_vars est on, faut faire gaffe à la définition de $valid_pages. Vaut mieux utiliser
    $valid_pages = array('foo', 'bar', baz');
    que
    foreach ($pages as $pg)
     $valid_pages[$pg] = 1;
    
    parce qu'alors un attaquant pourrait faire une requète genre machin.php?valid_pages['fichier_secret']=1&pg=fichier_secret

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.