Salut,
Pour sécuriser l'accès à un page, tu as, à ma connaissance, deux moyens. Les .htaccess : Avec ça, tu peux protéger l'accès à tout un répertoire de ton site, de manière très sécurisée, mais pas très pratique si tu veux faire une administration complète du site. http://www.infres.enst.fr/~danzart/frames/htaccess.html et Le php : Pour ça, je te conseil d'utiliser les sessions. Tu fais un formulaire de login que tu envoie sur une page de vérification. Si les login et mot de passe sont juste, alors tu enregistre une session et tu redirige le visiteur vers la page, sinon tu reviens au formulaire. Ensuite, sur la page à protéger, tu vérifie que la session à été enregistrée, et sinon, tu renvoie le visiteur sur le formulaire. http://www.phpdebutant.org/article69.php @+ (_..:: P'tit Suisse ::.._)
|
salut ptit suisse, j'ai été voir le site php débutant mais il faut préalablement avoir créé une base de donnée avec login et mot de passe pour utiliser les sessions.
Est ce corrrect ou y a t-il un autre moyen ? |
Il vaut mieux en effet stocker les données dans une bdd avec le mot de passe en PASSWORD.
Lorsque le membre se connecte, tu interroges la bdd pour voir si un résultat existe. Si ce n'est pas le cas, alors affichage d'un message d'erreur. Si c'est le cas, tu stockes par exemple le pseudo dans une variable de SESSION. Pour les pages à accès restreint, il te suffit ensuite de tester la présence de cette variable de session. |
Tu devrais utilisé MD5 au lieu de PASSWORD, il est un peu moins connu et même plus efficace. |
Pour la protection des espaces d'administration :
- Vaut mieux un htaccess (surtout si vous codez mal les script d'identification en php) et cela permet de rendre innaccessible TOUS les fichiers contenus dans les répertoires et sous répertoires. Si quand même vous voulez passer par le php : - Mettez des sessions à TOUS les scripts contenus dans les répertoires (même les includes... du genre menu.php car un pirate peut s'en serveur pour savoir les autres noms des pages avec les liens.) - Regardez bien quelle est la configuration du serveur (si les magic quotes sont activées pour les identifications dont il faut chercher les identifiants dans la base de donnée. Cela pour éviter les injections SQL) - Regardez si votre site ne possède pas d'include locale. ( de même dans le cas d'un htacess. Pour reprendre vos dires : Il vaut mieux en effet stocker les données dans une bdd avec le mot de passe en PASSWORD. => codage en MD5 (même si il existe des tables de correspondance) Avec ça, tu peux protéger l'accès à tout un répertoire de ton site, de manière très sécurisée, mais pas très pratique si tu veux faire une administration complète du site. => il n'y a pas de problèmes pour avoir un accès à une administration complète, dui moment qu'elle est dans les sous répertoires ou dans les répertoires contenant le .htapasswd et le .htaccess. (d'ailleurs le htaccess sert à pliens de choses utiles...google) Et puis voiloute, en tous les cas, pour contrer les pirates, ne nomez jamais un dossier d'administration : /admin/ ou /administration/ (trop devinable.) et aussi utilisez pas le même mot de passe partout ! Et puis, si un pirate veut vous attaquer, il n'aurra pas de mal. |
Persnnellement, j'ai fait une page d'Administration sécurisée par PHP et c'est quasi inviolable et sans BDD ^^.
EN GROS, je récupère le login et mot de passe tapé, je hashe en md5 plusieurs fois le mot de passe et le compare avec le hash du bon mot de passe contenu dans la source, si ça correspond c'est que le mot de passe initial est correct et j'autorise l'accès. Donc le code en partie: if (!empty($_POST['password'])) { $pass = htmlentities($_POST['password'], ENT_QUOTES); $pass = md5(md5(md5($pass))); } if (isset($pass) AND $pass = $hash) //Il faudra évidemment déclarer $hash avant ^^ { echo 'Page Protégée'; } else { echo 'Formulaire'; } Bon evidemment le mien est un peu plus élaboré, je n,'ai authorisé que deux essais, sinon il enregistre l'IP dans un doc txt, et si l'IP est dans ce fameux doc txt, le formulaire ne s'affiche plus :D Et y'a un gentil message de Vous avez dépassé le nombre de tentatives autorisées. Mais je pense que ça suffira... |
Bonjour ,
Voila j'ai une base de donnees acess comportant une table qui contient les champs:Nom et Prenom et Mot_de_passe. Je voudrais faire un petit formulaire d'identification qui une fois valider dirige l'utilisateur faire un site.Pour l'identification je voudrai comparer ce que l'utilisateur rentre comme Nom Prenom ert mdp avec le contenu de ma bdd acess, si les champs sont identique alors je le redirige vers mon site sinon ecrire erreur d'identification. J'ai tres bien etablie la connexion avec ma BDD acess (avec l'obdc et tt sa) mais je ne sais pas comment faire pour comparer les saisies de l'utilisateur avec les donnees de ma bases de donnees. Voila si quelqu'un pourrait m'aider je le remercie d'avance.
|
| 25/02 11h01 | [PHP] securisation de pages web | Webmastering | 18/03 22h33 | 5 |
| 08/06 08h43 | PhpMyadmin - modifier la page d'accueil | Webmastering | 08/06 08h43 | 0 |
| 28/05 21h32 | accés pages sécurisés | Internet | 29/05 00h20 | 3 |
| 25/02 10h14 | [PHP] securisation page web | Programmation | 07/04 22h14 | 1 |