include et sécurité

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : include et sécurité

par Khorne_fr1 » 07 mars 2006, 21:38

Je serais d'accord que ca ne soit pas sécurisé si le code était le suivant:

Code : Tout sélectionner

include("./includes/".$_REQUEST["p"]);

Mais dans ce cas:

Code : Tout sélectionner

include("./modules/command.".$_REQUEST["p"].".mod.php");
Comment une personne peut-elle chercher un autre fichier que ceux qui se trouvent dans modules et dont la forme est : command.xxxx.mod.php ?

par mario » 07 mars 2006, 21:33

Je trouve que ce n'est pas sécurisé.
Après, les avis peuvent diverger et ça peut être interessant d'en parler dans la rubrique méthodologie de ce forum.
Je pense que laisser trop de liberté au visiteur (dans le domaine de l'include) est dangereux :wink:

Alors, je t'ai concocté un include version parano :twisted:
<?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:P

include et sécurité

par Khorne_fr1 » 07 mars 2006, 21:08

Bonjour,

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");
Merci