Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1050 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  script login-mot de passe (noob inside)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

script login-mot de passe (noob inside)

n°1981932
caribouuu
Posté le 08-04-2010 à 12:04:50  profilanswer
 

Salut

 

Je cherche à rendre une page internet accessible seulement après avoir entré un identifiant et un mot de passe.

 

Je tenais à faire le script moi même alors je n'ai pas regardé de scripts tous faits, du coup comme je débute j'imagine que mon script est perfectible même s'il fonctionne bien, le voici:
(pour l'exemple j'ai choisi comme identifiant "admin" et comme mot de passe "voiture", qui correspondent respectivement aux champs "identifiant" et "pass" du formulaire, si l'identifiant et le pass sont bons, ça redirige vers "maj.php" )

Code :
  1. <?php
  2. if(!$_POST["identifiant"] && !$_POST["pass"]){
  3.     echo "Veuillez remplir les champs s'il vous plait.";
  4. }
  5. elseif(!$_POST["identifiant"]){
  6.     echo "Veuillez entrer votre identifiant s'il vous plaît";
  7. }
  8. elseif(!$_POST["pass"]){
  9.     echo "Veuillez entrer votre mot de passe s'il vous plaît";
  10. }
  11. elseif($_POST["identifiant"]!="admin" || $_POST["pass"]!="voiture" ){
  12.    echo "Vous avez entré un mauvais identifiant et/ou un mauvais mot de passe.";
  13. }
  14. else{
  15.     header("location: maj.php" );
  16. }
  17. ?>
 

Est-ce que ça vous semble protéger la page internet?

 

Autre question: A partir du moment ou une page est nommée en .php, et que le site internet ne contient aucun lien dirigeant vers cette page, excepté via un header dans du code php sous certaines conditions, la page est-elle téléchargeable par les aspirateurs de site?


Message édité par caribouuu le 08-04-2010 à 12:07:59

---------------
Bla (blaa bbla)
mood
Publicité
Posté le 08-04-2010 à 12:04:50  profilanswer
 

n°1981944
abais
Posté le 08-04-2010 à 12:59:45  profilanswer
 

La page ne seras pas "téléchargeable" par HTTP, c'est le rôle de PHP, tu n'en auras que le code que ton PHP retourne/génère... (Sauf si faille de sécurité, mais c'est un domaine qui m'est inconnu).
Ton code ne protège rien dans le sens ou rien n'empêche d'accéder à "maj.php" directement... Je ne pense pas que tu puisses compter sur le fait que personne n'en connaisse l'url où le nom...
Tu peux (en attendant l'avis d'un expert) utiliser une SESSIONS (que tu instancie dans ton else{}) que tu vérifies au sein de maj.php...

 

Sinon, tu peux +ou- mettre le contenu de ton maj.php dans le else, non ?


Message édité par abais le 08-04-2010 à 13:03:24

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1981946
caribouuu
Posté le 08-04-2010 à 13:03:12  profilanswer
 

oui j'avais pas pensé à l'url, enfin j'avais le pressentiment que c'était trop léger pour vraiment protéger la page sans vraiment savoir pourquoi, merci de ta réponse, je vais apprendre à faire des sessions du coup ;)


---------------
Bla (blaa bbla)
n°1981962
aymeric38
Posté le 08-04-2010 à 13:50:18  profilanswer
 

  1. <?php
session_start();
$_SESSION['admin'] = 0;  
   2. if(!$_POST["identifiant"] && !$_POST["pass"]){
   3.     echo "Veuillez remplir les champs s'il vous plait.";
   4. }
   5. elseif(!$_POST["identifiant"]){
   6.     echo "Veuillez entrer votre identifiant s'il vous plaît";
   7. }
   8. elseif(!$_POST["pass"]){
   9.     echo "Veuillez entrer votre mot de passe s'il vous plaît";
  10. }
  11. elseif($_POST["identifiant"]!="admin" || $_POST["pass"]!="voiture" ){
  12.    echo "Vous avez entré un mauvais identifiant et/ou un mauvais mot de passe.";
  13. }
  14. else{
$_SESSION['admin'] = 1;  
  15.     header("location: maj.php" );
  16. }
  17. ?>
 
Puis sur ta page map.php tu mets au début de ta page
<?php
session_start();
if ($_SESSION["admin"] != 1){
echo "Interdit !";
exit(0);
}
echo "Autorisé !";
?>

n°1982334
rengzehn
Posté le 09-04-2010 à 09:31:19  profilanswer
 

2 choses si ton objectif c'est la sécurité
 
1) utilises cette fonction http://php.net/manual/fr/function.htmlentities.php sur tes variables identifiant et pass sinon tu vas être soumis à de l'injection.
2) pas bon de garder le mdp en clair dans le fichier. A la place, calcule la somme MD5 de ton mdp et à chaque envoi du formulaire, calcule la MD5S de la variable pass envoyée et compares les deux.

n°1982410
aymeric38
Posté le 09-04-2010 à 11:05:27  profilanswer
 

Oui si tu utilises une base de données. Dans le cas ou il garde son script tel qu'il le donne pas besoin de faire tout ça !

n°1982413
aymeric38
Posté le 09-04-2010 à 11:07:13  profilanswer
 

Puis si son objectif est la sécurité il faut utiliser du SHA et plus du MD5 !

n°1982651
rengzehn
Posté le 09-04-2010 à 17:24:40  profilanswer
 

aymeric38 a écrit :

Oui si tu utilises une base de données. Dans le cas ou il garde son script tel qu'il le donne pas besoin de faire tout ça !


 
c'est bon à savoir. s'il fait un form plus tard pour créer des utilisateurs, ça lui évitera d'en avoir avec du javascript dans le login. yep pour sha plutot que md5, faut que je perde l'habitude de l'utiliser...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  script login-mot de passe (noob inside)

 

Sujets relatifs
Client FTP fonctionnant avec script <> du FTP Windows[LDAP] Changer mot de passe Active Directory via PHP
description script intégration domaine VBSchaine avec <br> qui ne passe pas par _GET
Modifier un script java-script en PhP / MySQLexecuter un script shell dans une page web
Problème d'affichage de scriptaffichage fenetre de changement de mot de passe
et enfain le script de travian et gratuitment pour vousscript alimentation programmable
Plus de sujets relatifs à : script login-mot de passe (noob inside)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR