Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2007, 11h37   #1
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
Par défaut [Sécurité] Sécurité pour accès a des pages PHP

Voici j'ai réalisé un site d'administrateur pour gérer un réseaux

je voudrais que l'utilisateur puis ne pas accèdé au autre page sans avoir passé la page de connexion.

comment puis-je faire?

petit schéma de mon site :
--Page de connexion
------page d'acceuil
------page de paramètrage

je voudrais que si l'utilisateur tape l'adresse directe de la page d'acceuil ou de la page de paramétrage ce dernier soit redirigé vers la page de connexion (faire une vérification du mot de passe et identifiant)
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 11h43   #2
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Grand classique.
.htaccess

Il doit également y avoir un tutorial qui traine sur dvp.com et qui traite de la sécurité en php.
__________________
Rakken

Oneira, un monde imaginaire d'Heroic Fantasy.

Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 11h56   #3
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
je viens de lire le tutoriel de cette méthode

j'avoue ne pas avoir tout saisi

si quelqu'un pourrais me l'expliquer par exemple j'ai un page de connexion fait pas mes soins
qui grâce a du PHP vérifie le mot de passe et l'identifiant tapé avec celui qui est contenu dans un fichier ini
si cela c'est bon il appel la page index.php

donc comment dois faire avec ta méthode pour dire que si l'utilisateur demande directement la page index.php sans passer par la page connexion on lui redemande le mot de passe et identifiant du début?

merci d'avance de ton aide et de ta réponse rapide
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 12h10   #4
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
En fait le principe du .htaccess, c'est qu'il est géré directement par apache.
En gros, tu pose ton fichier .htaccess dans un répertoire. Et si un gars veut acceder a une page qui est dans ce répertoire (ou un sous répertoire), alors automatiquement, sans que tu n'ai besoin d'écrire de code php, une fenetre de login/pass apparait.
Cette méthode a l'avantage d'être l'une des plus sure pour une mise en place relativement aisée (tu vas probablement galérer un peu la premiere fois, histoire de mettre au point les chemin d'acces au fichier de mots de passe et ces choses là, mais une fois fait une fois, après ca va mieux).

Des tutoriels sur l'art et la maniere de faire, il y en a légion sur internet.

Après, si tu veux vraiment faire un système d'authentification par toi même, il y a plusieurs maniere.
Le principe de base est de passer une variable de page en page (ou via session, l'important est de pouvoir tester son existence/contenu a chaque page).
Au début de chacune de tes pages, tu testes la variable en question (je te conseille d'inclure un petit fichier qui fera le boulot). Si la variable n'existe pas ou si elle n'a pas le bon contenu, tu rediriges vers la page d'acceuil, sinon tu laisse le code de ta page s'executer.
Et sur la page d'acceuil, tu crée la variable en question quand la personne rentre les bon logins/mot de passe.
A partir du principe général, il existe presque autant de maniere de le mettre en oeuvre que de développeur. Perso, j'aime bien creer a la connexion une variable de type id-xxxxxxx(code aléatoire), que je rentre dans une bdd et que je passe a chaque page, et a chaque tentative de lecture d'une page, je vais lire dans la bdd s'il existe une ligne correspondant, avec une date de "derniere modification" suffisament proche sinon, redirection.
__________________
Rakken

Oneira, un monde imaginaire d'Heroic Fantasy.

Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 13h14   #5
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
bon j'ai essayé la premiere version avec .htaccess
bon le panneau d'identification marche bien

mais quand je veux taper le mot de passe rien ne se passe :

le .htaccess :

Code :
1
2
3
4
5
6
7
Authname "Zone protégée"
AuthUserFile /Administrateur/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
<limit GET POST>
require valid-user
</limit>
le .htpasswd
Code :
1
2
 
admin:X9eFXKOxDVDaw
pour la seconde solution j'y avais pensé aussi a une variable qui passe d'une page a une autre
mais comment fait on ?


je voudrais que le mot de passe soit admin (truc bidon) donc je sais pas si le mot de passe est bien crypté.
Pour info supplémentaire je suis sous serveur Windows 2000

merci pour votre aide et votre rapidité
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 14h06   #6
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Code :
AuthUserFile /Administrateur/.htpasswd
A tout les coups, le chemin n'est pas le bon.
Commence par mettre ton fichier de mot de passe au même endroit, en l'appelant sans chemin.
Ensuite, si tu as un doute sur l'encodage de ton mot de passe, il existe plusieurs site qui font des encodages en ligne. Testes sur plusieurs et mets tous les résulats ^_^ Il y en aura bien un de bon dans le tas ;-p
Citation:
pour la seconde solution j'y avais pensé aussi a une variable qui passe d'une page a une autre
mais comment fait on ?
Ben soit avec une variable de session (voir les tutoriels qui vont bien), soit tu les passes a la main, en mettant la variable dans tous tes liens internes (variable hidden dans les formulaires en POST, parametre dans l'url en GET).
Le plus simple reste probablement quand même les sessions.
__________________
Rakken

Oneira, un monde imaginaire d'Heroic Fantasy.

Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 15h05   #7
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 251
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 251
Points : 1 514
Points : 1 514
salut,
sans passer par le .hhacces, tu peux passer par les sessions

et a chaque début de page que tu veux protéger, tu test si le user a le doit d'accéder a la page ou non :

Code :
1
2
3
4
5
6
7
8
9
10
11
requete sql te permettant de retourner le log et le psw du user
et tu compare a celui qu'il a renseigné sur ta page d'index
if($result['psw'] != $_SESSION['psw'])
{ // pas ok
include("index.php")
exit;
}
else
{ // ok
ta page avec tout ton code
}
GL ^^
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 15h05   #8
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
Voici j'ai lu le tutorial
a propos d'une variable de session

donc faut que j'ouvre une session puis que j'enregistre ma variable

donc pour mon exemple
j'ouvre ma session lors de la vérification de mon mot de passe
soit :
page connexion.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
session_start(); 
 
/* si la variables $ID 
   n'existe pas alors : */ 
if(!isset($ID)) { 
  $ID = "1"; 
  /* sauvegarde de la variable $ID 
     afin qu'elle soit connue dans 
     les autres pages */ 
  session_register("ID");  
}
 
// vérification de mon mot de passe
donc après normalement je peux consulter l'état de cette variable dans n'importe quel autre page?
puis je faire comme cela :

page MmapId.php :
Code :
1
2
3
4
5
6
 
if ($ID=="1") {
	require("MmapId1.php");
}else{
	header('Location: connexion.php?login=');
}
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 15h26   #9
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Euh... il me semble qu'il faut passer par $_SESSION comme indiqué ici, mais je dois avouer que je ne suis pas un pro des sessions. Je me prend généralement la tête une fois pour le mettre en place et j'y touche plus jusqu'a la fin du projet ^^
__________________
Rakken

Oneira, un monde imaginaire d'Heroic Fantasy.

Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 15h57   #10
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 78
Points : 27
Points : 27
bon il doit y avoir un problème car j'ai recopier la version du site que tu m'a passé ça marche

mais quand j'essaye avec ma méthode ça marche pas

donc si vous pouviez m'aider :

donc voici ma page de connexion :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
/* démarrage session */ 
session_start(); 
$_SESSION['favcolor'] = 'vert';
 
//instruction diverse
 
f ( $_POST['username']=="admin" && $_POST['password']=="admin" && $_POST['Type'] == "administrateur") {
			require "index1.html";
 
}
else { header('Location: /connexion.php?login=');
			}
page index1.html

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
  <?php
require "entetemenu.html";
?>
  <body style="background-color: gainsboro; text-align: center; font-family: 'Comic Sans MS';">
      <br />
      <br />
      <br />
      <br />
      <br />
      <br />
      <br />
      <br />
      <br />
      <br />
      <br />
      Bienvenu sur le site Administrateur    
  </body>
</html>
l'entetemenu :

Code :
1
2
3
4
5
6
7
<div>
	<div class="centre" style="background-color: gainsboro; text-align: center; font-family: 'Comic Sans MS';">
		<a href="index1.html">Accueil</a>
    &nbsp;&nbsp; |
		<a href="test.php">Map</a>  | <a href="quitter.php">Quitter</a>
	</div>
</div>
test.php :

Code :
1
2
3
4
5
6
<?php
session_start();
echo 'Bienvenue sur la page test<br />';
echo $_SESSION['favcolor']; // vert
 
?>
malheureusement cela m'affiche rien.....
FracMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h53.


 
 
 
 
Partenaires

Hébergement Web