Sécurité admin
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
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.
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
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
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 !!!!!
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
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...
BTB
Nì heolas go haontìos
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
Il en faut peu pour être heureux !!!!!
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 !!!!!
Bon, ben, je galère toujours autant
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