Sécurité admin

Répondre
BornToBe
le 27/08/2004 à 14:56
BornToBe
Voilà le schéma: index.html -> connexion.html (-> login.php) -> accueil_admin.html.
Exposition du problème par l'exemple: je suis par exemple sur la page accueil_admin.html et avec les flèches de l'explorateur je reviens sur connexion.html; mais si j'utilise la flèche de retour dans l'explorateur, je reviens directement sur accueil_admin.html sans besoin de me connecter. Plus grave: il y a un lien dans accueil_admin.html vers index.html! Ce problème devient donc assez gênant.
J'aimerais savoir qu'est-ce qu'il faut rajouter pour sécuriser un peu plus l'accès à la partie administrateur.

BTB
Nì heolas go haontìos
Sedilbur
le 27/08/2004 à 15:36
Sedilbur
Tu verifies qu'il est connecté dans chacune de tes pages et si il ne l'ai pas redirection connexion.html... Mébon tu devras changer l'extension de certains page genre acceuil en .php...
Un petit tour du côté du cours des sessions devrais t'aider.
zebden
le 27/08/2004 à 16:22
zebden
Effectivement si tu ne teste pas la session , tu peux acceder facilement aux pages html et donc a l'administration.
Mettre ses pages avec l'extention php ne coute rien mais l'inversement si (eh oui).
Donc comme dit Sedilbur un petit retour sur les sessions te feraient du bien :D
zebdinou pour les intimes / Blog : http://www.zebden.fr
BornToBe
le 27/08/2004 à 17:04
BornToBe
OK, merci beaucoup. J'y avait pensé mais je me suis dit que ça devait être un rien plus subtil...
Ben non. Encore merci.

BTB
Nì heolas go haontìos
moogli
le 27/08/2004 à 17:18
moogli
Salut,

Y a une autre solution :
tu met ton fichier admin.html dans un repertoire dans lequel tu met un .htaccess au demande une autentification, sa fonctionne aussi.
Perso j'ai toujours eu des soucis avec sa m'enfin ...

Pour le htaccess cherche sur google créer un htacces ou securiser un server apache avec fichier htaccess ...
Il en faut peu pour être heureux !!!!!
BornToBe
le 27/08/2004 à 17:32
BornToBe
OK. Merci. Je vais tout tester. Si il y a d'autres moyens, ça m'intéresse... Curieux, moi?

BTB
Nì heolas go haontìos
BornToBe
le 30/08/2004 à 14:21
BornToBe
Je suis désolé, j'ai un peu de mal. Je crois avoir fait comme dans le cours; voici le début de accueil_admin.php :
$login_valide = "moi";
$pwd_valide = "lemien";

if (isset($_POST['login']) && isset($_POST['pwd']))
{
if ($login_valide == $_POST['login'] && $pwd_valide == $_POST['pwd']){
$_SESSION['login'] = $_POST['login'];
$_SESSION['pwd'] = $_POST['pwd'];
}
else
{
echo '<body onLoad="alert(\'Membre non reconnu...\')">';
echo '<meta http-equiv="refresh" content="0;URL=connexion.html">';
}
Pourtant, lorsque je viens d'une autre page de la session administrateur, il me met qu'effectivement on ne peut pas y acceder(variables non définies), normal, donc; mais avec les flèches du navigateur, on y rentre comme dans du beurre...smiley

BTB
Nì heolas go haontìos
moogli
le 30/08/2004 à 14:50
moogli
Salut,
Je pense que tu fait la bonne chose au bonne endroit :)

Je m'explique :

L'enregistrement des variables de session de fait sur la page de login de ton espace membre (c'est peut etre acceuil_admin.php remarque ?).
Je ne pense pas que tu est besoin d'enregistrer le mdp en variable de session (mais c'est toi qui vois)..

Pour reprendre se que tu a fait
acceuil_admin.php
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1634]ce lien[/lien])


Ensuite sur la page page_admin.php
<?php
//ouverture de la session
session_start();
//on verifie le client a le droit de venir sur cette page
if (!isset($_SESSION['login'])) header('Location: page_admin.php;
//en fait la si le client n'est pas autoriser on l'envoi sur le formulaire de connection.

// apres tout ce que veut proteger
?>


Quelques remarques :

A tu plusieurs membres (difference entre membre et admin)
Je suis partie sur le fait que acceuil_admin est la page de connection mais si c'est pas le cas une page login.php fera pareil.

Pour finir il faut que tu test en haut de chaque page si le client est autorisé a accéder a celle ci. Pour cela tu ouvre la session et tu verifie que pseudo existe (si tu fait la difference entre membre et admin et rajoute une variable de session ($_SESSION['admin'] ?) et tu lui donne comme valeur true, false (0 ou 1 enfin tout ce que tu veut) et suivant si pseudo existe et si admin = true alors tu affiche la page sinon eject smiley
Il en faut peu pour être heureux !!!!!
moogli
le 30/08/2004 à 14:53
moogli
G oublié,

Pour le coup de fleche du navigateur c'est normal que tu puisse y acceder puisque te variable de session existe et que y est deja allé. pour eviter cela, detruit les variables de session (session_unregistrer ('var');) et la session (session_destroy();)

ceci est a faire de toute facon lorsque que l'admin quitte le site (le mieux en cliquant sur logout ..)
Il en faut peu pour être heureux !!!!!
BornToBe
le 30/08/2004 à 18:07
BornToBe
Bon, ben, je galère toujours autantsmiley
Pour répondre à ta question, il n'y a pas plusieurs membres: il n'y a que l'admin; à ce propos, où est-ce que tu déclare $_SESSION['admin']? Et comment cripter le login et le mot de passe qui sont codés en dur sur la page?

Ensuite, j'ai un problème sur toutes les pages (j'en conclus qu'il doit y avoir un petit truc à régler): un warning qui me dit "headers already sent" à chaque session_start(); de mes pages.

BTB
Nì heolas go haontìos
Répondre
LoadingChargement en cours