Protection d'un site (architecture pseudo-frame evolué)

Contenu du snippet

Bon on pourra sans doute amméliorer ce script. Lorsque l'on monte un site en pseudo-frames, il est souvent préférable que le visiteur ne puisse pas accéder à une rubrique sans passer par la page index. Par exemple :

Adresse normale :
http://www.monsite.com/index.php?rub=2

Le visiteur (mal attentionné) tape :
http://www.monsite.com/page.php
et il obtient une des rubriques du site. Cela peut présenter un gros trou de sécurité !

Voici une solution que je dois en grande partie à Lorenzo et bien d'autres qui m'on aidé sur le forum de phpinfo.net

Source / Exemple :


Vous avez un fichier conf.inc.php : 

<? 
/* Fichier à adapter aux différentes configurations */ 
         
// Chemin d'acces global 
// (ne pas oublier le / à la fin) 
// ATTENTION AU MAJUSCULE/MINUSCULE !!! 
$global_acces = 'http://localhost/Projet2/'; 
                 
// Fichier acces membre 
$pageindex = 'espace_membre.php'; 
?> 

Un fichier check_acces.php : 

<? 
function check_access($url) 
{ 
  include ('./var_conf.inc.php');  /* ça c'est pas top, j'sais pas comment faire autrement */
  $url = explode("?",$url); 

  // url normal pour accéder à la page 
  $url_normal = "$global_acces" . "$pageindex"; 

  If ($url[0] != $url_normal) 
  { 
        return false; 
  } 
  else 
  { 
        return true; 
  } 
} 

// On verifie si le chemin d'acces à la page 
// est correct. 
if (!check_access($HTTP_REFERER)) 
{ 
   echo "Désolé, mais vous n'avez pas accès à cette page<P>\n"; 
   echo "<A HREF=\"index.php\">Retour</A><P>"; 
   exit(); 
} 
?>

Conclusion :


Il vous suffit ensuite de faire sur toute les pages que vous souhaitez protéger :

<? include('check_access.php'); ?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.