begin process at 2012 02 11 02:44:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > PROTECTION D'UN SITE (ARCHITECTURE PSEUDO-FRAME EVOLUÉ)

PROTECTION D'UN SITE (ARCHITECTURE PSEUDO-FRAME EVOLUÉ)


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Niveau :Débutant Date de création :05/09/2002 Date de mise à jour :05/09/2002 14:31:34 Vu :6 143

Auteur : anduril22

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

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

  • 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();
  • }
  • ?>
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 :

&lt;? include('check_access.php'); ?&gt;



 Sources de la même categorie

Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000
Source avec Zip Source avec une capture GENERATEUR DE BOUTONS DE PARTAGES POUR RESEAUX SOCIAUX par cod57

Commentaires et avis

Commentaire de matrey le 06/09/2002 15:53:41

On peut aussi faire :
if (!eregi("mapage.php", $PHP_SELF)) {
die ("Accès direct impossible");
}
Ca n'autorise pas l'accès direct, seulement l'inclusion dans une autre page php.

Commentaire de CrazyDeep le 03/04/2003 08:11:00

&lt;?
$url = $HTTP_REFERER;
$net_url = strtolower($url);//on met tout en minuscule
$verif_url = substr("$net_url", 0, 14);// 14 est le nb de lettre du debut de l'adresse
if ($verif_url!="http://monadresse.com")//on verifi quel commence par
{
print("&lt;b&gt;Vous ne pouvez pas acceder a cette zone &lt;/b&gt;");
exit();
}
Une soluce simple mais efficace.

Commentaire de CrazyDeep le 03/04/2003 17:06:26

&lt;SCRIPT LANGUAGE="JavaScript"&gt;
&lt;!--
if (document.referrer.indexOf("http://monsite.com") == -1) {
    window.location.replace("http://monsite.com");
}
// End --&gt;
&lt;/script&gt;
encore mieux. VIVE java script

Commentaire de pyroflo le 11/02/2004 17:06:27

Que tu passes par http://monsite.com/?p=page ou bien http://monsite.com/page.php le referrer contiendra toujours le nom de domaine...

Commentaire de philoulheinz le 24/02/2004 20:56:31

je suis en train de faire un site avec des pseudos frames. Et je me suis dit que je ne pouvais pas laisser passer une aussi grosse faille. Alors g tester ton code mais sans succès ( amon avis c fort probable que ce soit moi qui mi suis mal pris).

Alors en me creusant la tete je me suis dit que les sites php nuke utilise le principe des pseudos frames. (g fait le test : "http://www.monsite.com/index.php?rub=2" =
"http://www.monsite.com/page.php"  pour voir ce que ça faisait et ça donne ceci : "You can't access this file directly..." alors g chercher ds le code source de phpnuke. Il suffit juste de mettre ceci en haut des pages que tu ne veux pas quelles soient accédées directement :

if (!eregi("index.php", $_SERVER['PHP_SELF']))
    {
die ("You can't access this file directly...");
    }

et apparement ça marche.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales