Pseudo-frames et sécurité

Contenu du snippet

Ce code à pour but d'empêcher à des utilisateurs mal intentionnés d'avoir accés aux pages de votre site qui ne sont là que pour être inclues par la méthode des pseudo frames.

ex: le menu gauche est inclus comme ceci :
<?php include('menu_gauche.php)'; ?> l
à où il doit être. Le code de menu_gauche.php contient toutes les données pour afficher votre cher menu. Mais! si on tape www.monsite.com/menu_gauche.php, on tombe direct sur notre ptit menu, et on ne veut pas ça car il se situe dans un espace membre!

Voilà comment empêcher ce crime...

Source / Exemple :


//le but ici est de sécuriser les pseudo-frames
//en effet, on ne peut que tres difficilement protéger les fichiers à inclure.
//on ne veut pas pouvoir accéder aux pages à inclure de cette façon:
//http://www.monsite.com/mapage.php, mais plutôt de celle ci:
//http//www.monsite.com/accueil.php?page=bidule
//
//voilà une solution toute simple qui évite de se prendre la tête

//contenu de mapage.php

//on stocke l'url de la page.
//PHP_SELF est une variable qui contient l'url en cours.
//ici, le choix de stocker $PHP_SELF dans $path est purement un choix d'ergonomie

$path=$PHP_SELF;

//Ici, on regarde si le nom de la page à protéger se trouve dans l'url en cours.
//La fonction eregi() recherche une occurence de mapage.php dans l'url
//et renvoie VRAI si elle trouve.

if ( eregi("mapage.php",$path) )
	
	{
		//si VRAI alors on ne passe pas!
		echo "Accès direct impossible"; 
		echo "<br>"; 
		echo "vous essayez d'accéder à un fichier protégé en passant par: ";
		echo $path; 
	}

else 
	
	{ 
		//sinon, on passe
		echo "Access granted";
	}

?>

//contenu de membres.php

<?php

if ($page==1) { include('mapage.php'); }

else { echo "rien"; }

?>

Conclusion :


Testez chez vous!

Créez le fichier mapage.php. Créez le fichier membres.php.
Dans votre navigateur sous environnement php (copiez les deux fichiers dans le répertoire www/monsite dans easyphp, par exemple) accédez à membres.php puis à membres.php?page=1 puis directement à mapage.php.

PREMIER CAS: on se retrouve devant: rien
SECOND CAS: on se retrouve devant: acces granted
DERNIER CAS: on se retrouve devant: acces direct impossible (..)

A faire dans chaque page à sécuriser! (seulement le code de mapage.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.