begin process at 2012 05 28 07:47:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

accès page membre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

accès page membre

mardi 13 décembre 2011 à 10:19:52 | accès page membre

stephelle

Bonjour, un petit problème. Ma page d'accès tourne en rond en me disant "mauvais login ou mot de passe" alors que je suis bien enregistrer dans ma base sql. Où est cette petite erreur qui me pose tant de problème?!!

ma page "identification":

<?php
if (isset($_GET["m"]))
{
?>
<form action="securite.php" method="post">
<div id="identification">
<p>Login :</p>
<p><input type="text" name="userid" size="20" maxlength="40"/></p>
<p>Mot de passe :</p>
<p><input type="password" name="password" size="20" maxlength="40"/></p>
<p><input type="submit" value="Envoyer" /></p>
<?php
if ($_GET["m"]=="1")
{
echo "<p style=\"color:#ff0000;font-weight:bold;\">Mauvais login ou mot de passe !</p>";
}
?>
<?php
?>
<p><a href="validation.php">S'inscrire</a></p>
</div>
<?php
}
?>




Ma "securite"


<?php
session_start();
if ($_POST["userid"] && $_POST["password"])
{
require "connect.inc.php";
$res = @mysql_query("SELECT userid FROM users WHERE userid='".mysql_real_escape_string($userid)."' AND password='".mysql_real_escape_string($password)."' AND level='registered'");
if(@mysql_num_rows($res) != 0)
{
$verified_user = $_POST["userid"];
session_register("verified_user");
Header("Location: ../".$page_redirection);
}
else
{
Header("Location: identification.php?m=1");
}
}
else
{
Header("Location: identification.php?m=1");
}
?>

Merci par avance pour vos réponses.
mardi 13 décembre 2011 à 11:03:25 | Re : accès page membre

TychoBrahe

Salut,

Code PHP :
$res = @mysql_query("SELECT userid FROM users WHERE userid='".mysql_real_escape_string($userid)."' AND password='".mysql_real_escape_string($password)."' AND level='registered'");

Les variables $userid et $password ne sont pas définies, tu devrais remplacer respectivement par $_POST['userid'] et $_POST['password'].

J'en profite pour soulever quelques points :
- C'est une très mauvaise idée de stocker les mots de passe en clair dans ta base de données, et dans pas mal de pays c'est même illégal.
- Ta variable $verified_user ne sert à rien du tout.
- A première vue la sécurité de ton système laisse à désirer, par exemple on semble pouvoir facilement faire du XSS.
mardi 13 décembre 2011 à 13:02:13 | Re : accès page membre

stephelle

C'était un vieux code que j'avais.
T'as raison je vais en refaire un autre, c'est plus sûr.

Merci pour ton éclairage.

mardi 13 décembre 2011 à 20:37:27 | Re : accès page membre

MasterCent

Salut,

petit message aux codeurs débutants,

J'appuie le propos de TychoBrahe, à propos de mots de passe en clair : j'ai repris il y à quelques années, une base existante, et j'ai trouvé plein de mots de passe et adresses mail. Il y a fort à parier que certaines personnes avait le même mot de passe pour d'autres applications...
J'ai évidement supprimé tout cela, et utilisé depuis une fonction de codage depuis, type md5...

Par ailleurs, la sécurité merite un peu plus d'effort :
- un test if (isset($_POST['userid'])) est une idée,
- utilisation des ' au lieu des " dans les $_POST
- un fichier de log des tentatives réussies et ratées,
- un appel mysql_query ( ) ; suivi d'un test if ( mysql_error() ) sans le mortel die ! - heureusement absent ici. - car une erreur sql dans un process de sécurité est inquiétant !
- un compteur d'essais (erreur) par IP, pour les tentatives par dictionnaire
- ...


Je me permets d'en parler, car le "vieux code" de stephelle est plein d'enseignement.

Bon boulot donc,
MC


mardi 13 décembre 2011 à 23:20:30 | Re : accès page membre

TychoBrahe

Salut,

un test if (isset($_POST['userid'])) est une idée,


empty() est encore mieux pour ce genre de cas. Mais je ne vois pas de rapport avec la sécurité.

utilisation des ' au lieu des " dans les $_POST


Ici non plus aucun lien avec la sécurité, à part un gain négligeable de performance ce n'est pas vraiment utile de changer ça.

un fichier de log des tentatives réussies et ratées,


Mieux, tu sépare totalement le système de log du reste, permettant de stocker les logs dans une entité que cette portion du code ignore totalement (txt, xml, bdd ou autre).

un appel mysql_query ( ) ; suivi d'un test if ( mysql_error() ) sans le mortel die ! heureusement absent ici. - car une erreur sql dans un process de sécurité est inquiétant !


Non, c'est le résultat de mysql_query() qu'on test à la recherche d'une erreur. Et le die() n'a rien de choquant, ce qui l'est est de fournir au visiteur les détails de l'erreur. Et si on veux bien faire, on commence par ne pas utiliser les fonctions mysql_* ;)

un compteur d'essais (erreur) par IP, pour les tentatives par dictionnaire


Pas mal mais il faut faire très attention à la manière d'implémenter ceci, il y a pas mal de pièges.
mercredi 14 décembre 2011 à 08:55:30 | Re : accès page membre

MasterCent

Merci TychoBrahe pour la qualité de ta réponse,
j'en prend bonne note.


a+


Cette discussion est classée dans : page, login, mot, passe, accès


Répondre à ce message

Sujets en rapport avec ce message

cookies et sql [ par lpefec ] j'ai un petit problème :j'essaie de faire un site avec des page sécurisé...je suis capable de securisé les page mais les informations de "login" ne so cookies et sql [ par lpefec ] j'ai un petit problème :j'essaie de faire un site avec des page sécurisé...je suis capable de securisé les page mais les informations de "login" ne so un espace membre bien complet (si vous connaiser un partie de ce que je cherche dite le ) [ par astuces_jeux ] slt c'est pour savoir comment créer un espaces membres bien complet pour commencer la page membre avec login et mot de passe et une inscription plus e page blanche [ par sanhoua ] bonjour a tous après multiples essais je commences a m'ensortir mais hélas je suis coincé. je travaille avec dreamweaver mx, wampserver2. voici ma pag Problème avec ouverture de page par mots de passe sur mon site fonctionne sur firefox mais pas sur IE [ par Filou54 ] Espace Privé <tit authentification [ par maleckk ] bonjour j'ai realisée le code suivant ________________________________________________ <html xmlns="http://www.w3.org/1999/xht j'ai besoin un script en php qui permet à un utilisateur parmi les quels lorsque entrer avec son mot de passe et un login de laisser un message aux autres utilisateurs de son groupe. [ par malia01 ] Bonjour à tous, J'ai développé un site en php et mysql.dans laquel j'ai plusieurs utilisateurs qui sont sauvegardés dans une base de données et chacun Protection [ par sylv3str333 ] Bonjour à tous, Je suis à la recherche d'un code me permettant de bloquer l'accès d'une page grâce à un mot de passe (pas de login juste un mot de pas authentification [ par hajourakr ] bonjour, je suis en train de developper un module d'authentification pour les membres avec php/my sql, mais lorsque je saisie mon login et mot de pass Problème de cookies [ par LuTo ] Bonjour à tous. J'ai un problème très étrange avec des cookies sur mon site. J'enregistre le login/mot de passe des utilisateurs pour qu'ils n'aient p


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales