begin process at 2012 02 09 11:42:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > SÉCURISER UNE PAGE

SÉCURISER UNE PAGE


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Débutant Date de création :02/03/2005 Vu :11 159

Auteur : kezac007

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

 Description

Ce script permet de sécuriser une page. car en pratique une session est persistante et qu'il faut fermer le navigateur pour effacer la session de la memoire du serveur. Pour éviter cela voici un script de déconnexion qui détruit aussi la session.
Ce scrip est à mettre sur toutes les pages à sécuriser.
Ce script suppose aussi que qu'il y a plusieurs état : statut public , etc.... ça peu être modifié.

Source

  • <?php
  • //init de la session
  • session_start();
  • // ** Déconnexion de l'utilisateur courant. **
  • $logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
  • if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  • $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
  • }
  • if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  • //Pour détruire complètement la session du user, il faut détruire aussi ses variables de sessions
  • session_unregister('MM_Username');
  • session_unregister('MM_UserGroup');
  • session_unregister("statut");
  • session_destroy();
  • $logoutGoTo = "../login.php";
  • if ($logoutGoTo) { //si la variable renvoire true
  • header("Location: $logoutGoTo"); // retour à la page login
  • exit;
  • }
  • }
  • // vérification du statut de la personne qui demande une page
  • if ($_SESSION['VARstatut'] != "public") //si statut est différent de la personne connectée
  • { header("Location: ../login.php");} // retour à la page login
  • ?>
  • <html>
  • <body>
  • <a href="<?php echo $logoutAction ?>" >Déconnexion</a>
  • </body>
  • </html>
<?php
//init de la session
session_start();

// ** Déconnexion de l'utilisateur courant. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  //Pour détruire complètement la session du user, il faut détruire aussi ses variables de sessions
  session_unregister('MM_Username');
  session_unregister('MM_UserGroup');
  session_unregister("statut");
  session_destroy();
	
  $logoutGoTo = "../login.php";
  if ($logoutGoTo) {   //si la variable renvoire true
    header("Location: $logoutGoTo"); // retour à la page login
    exit;
  }
}

// vérification du statut de la personne qui demande une page

if ($_SESSION['VARstatut'] != "public")  //si statut est différent de la personne connectée
{ header("Location: ../login.php");}  // retour à la page login
?>


<html>
<body>

     <a href="<?php echo $logoutAction ?>" >Déconnexion</a>

</body>
</html>



 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 coucou747 le 02/03/2005 18:59:08 administrateur CS

if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
oh... tu devrais mettre :
if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING']){

et sinon, t'as des " partout...

$logoutGoTo = "../login.php";
    if ($logoutGoTo) {   //si la variable renvoire TRUE
euh... ton commentaire ne décrit pas du tout le fonctionnement du code...c'est à remplacer par :
    $logoutGoTo = "../login.php";

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
est à remplacer par :
if (isset($_GET['doLogout']) &&$_GET['doLogout']=='true'){
j'éspères que la variable doit contenir true, enfin que tu ne vérifiais pas si elle existait...

{ header("Location: ../login.php");}    // retour à la page login
est à remplacer par :
{ header('Location: ../login.php');}    // retour à la page login

    $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
est à remplacer par :
    $logoutAction .='&'. htmlentities($_SERVER['QUERY_STRING']);

enfin, il reste pas mal de travail...
en voyant ça, j'ai pas eu envie de tester, donc j'ai pas noté...

Commentaire de kezac007 le 03/03/2005 01:10:17

oui, enfin, mis à part les "" ce script marche correctement, je l'utilise personnellement.

Commentaire de GRenard le 03/03/2005 06:05:42

coucou747 : "
oh... tu devrais mettre :
if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING']){"
Je ne suis pas d'accord... on compare quoi ? un boolean ? on sait même pas si on mets pas != "" par contre remplacer " par '.
Pour ce qui est de la manipulation de query, un défaut... si doLogout existe déjà ! bah c'est pas bon :(
Faudrait je poste une source pour enlever ca ;) je l'ai déjà dans mes fonctions.

Commentaire de sarl_adc le 04/03/2005 11:38:16

Juste une question comme ça, ça sert à quoi de remplacer " par ' ?

Commentaire de GRenard le 04/03/2005 13:10:20

À faire fonctionner le script PHP plus rapidement ! pourquoi? parce que si tu mets des " ", le PHP va te parser toute ta chaine à la recherche de variable à l'intérieur. Alors qu'avec des simple quote, le PHP affiche tel quel.
Donc => Gain de rapidité

Commentaire de sarl_adc le 04/03/2005 14:43:18

Intéressant et utile, moi qui suis adepte des "" ;-)

Merci !

Commentaire de kingounet le 23/03/2005 10:24:35

marche pas chez moi quand je lance la page il me dis qu'il ne la trouve pas ... bizarre lol enfin pe easyphp qui déconne


Bye bye j'espere que je vais arriver a le faire marcher

Commentaire de Aramiil le 25/03/2005 17:08:55

session_unregister('MM_Username');
    session_unregister('MM_UserGroup');
    session_unregister("statut");

Ce serait pas plus rapide et plus simple d'utiliser session_unset() ?

Ensuite, je ne comprends pas l'utilité de ceci:

$logoutGoTo = "../login.php";
    if ($logoutGoTo) {   //si la variable renvoire TRUE

A quoi sers de tester si une variable contient quelque chose, alors qu'on la rempli à la ligne d'avant?

Commentaire de dhia45 le 21/04/2005 19:20:25

Fantastic Fantastic Fantastic Fantastic
sécurité en premiére même dans le kayasss..

Commentaire de gregmarty83 le 17/01/2006 16:27:09

Bonjour votre code marche très bien je vous en remercie par contre je voudrai que la session s'arrete après 5min admettons, comment faire?
<?php if( ) {echo $logoutAction} ?>
que dois mettre entre parenthèses.
MErci.

 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,374 sec (4)

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