Premier problème mySQL veut des ' ' autour du nom de la variable si je les mets l'espace est alors vide
second problème, si je force le nom a la main alors
-Si le mot de passe est juste aucune variable n'est interpreté
-Si le mot de passe est faux alors les variables sont interprétés
Je m'explique
<?
/********************************
* login.php *
* Check login and password and *
* Allow or deny access *
********************************/
//Connection DB et ouverture session
$nom=$_POST["login"];
$pass=md5($_POST["password"]);
$sql='SELECT Md5_passwd,IdJ from NP2_Perso WHERE Nom=';
$sql.=chr(34);
$sql.="Moi"; // Ici $nom est en dur pour faire des essais
$sql.=chr(34);
$query=mysql_query($sql,$db);
$data = mysql_fetch_array($query);
$mdpass=$data["Md5_passwd"];
if ($pass==$mdpass) { // J'ai aussi testé avec strcomp le pb vient pas de la
/* Redirection */
}
else {
/* Message pour Debug */
echo " Mauvais Login ou Mot de Passe \n"; // Toujours affiché
echo $sql;
echo " \n";
echo "XXX"; // Toujours affiché
echo $nom; // N'est affiché que si mot de passe est faux
echo "";
echo $pass," ",$data["Md5_passwd"];
echo "
",$_POST["password"]; // Toujours même valeur si mot de passe est juste différente de celle en db
}
?>
Par exemple si bon mot de passe ça me retourne
Mauvais Login ou Mot de Passe
SELECT Md5_passwd,IdJ from NP2_Perso WHERE Nom="Moi"
XXX
d41d8cd98f00b204e9800998ecf8427e
b59c67bf196a4758191e42f76670ceba
Si mauvais mdp ça me retourne
Mauvais Login ou Mot de Passe
SELECT Md5_passwd,IdJ from NP2_Perso WHERE Nom="Moi"
XXXMoi
72777f7be5992b0789396f2b8d92c221
b59c67bf196a4758191e42f76670ceba
MauvaisMotdePasse
Je vous avoue que la je deviens fous
Y a t'il un expert dans la place...
# une suggestion
Posté par fyah . Évalué à 1.
simple suggestion, voici comment je procède:
<?php
$qry="SELECT member_id FROM members WHERE login='".$_POST['login']."'
AND passwd='".md5($_POST['password'])."'";
$result=mysql_query($qry);
if(mysql_num_rows($result)>0) {
//Login Successful
//Regenerate session ID to
//prevent session fixation attacks
session_regenerate_id();
$member=mysql_fetch_assoc($result);
$_SESSION['SESS_MEMBER_ID']=$member['member_id'];
//Write session to disc
session_write_close();
header("location: member-index.php");
exit();
}
?>
Ce qui signifie en français que tu interroges ta BD avec le login et le md5 du pwd. S'il y a une ligne (au moins et normalement au plus) en résultat, c'est que le login est ok.
Bon courage.
[^] # Re: une suggestion
Posté par Jean B . Évalué à 5.
My 2 cents !
[^] # Re: une suggestion
Posté par Mais qui suis-je ? :) . Évalué à 2.
Si ma requette est fausse mauvais nom de champ, après avoir fait la requette je fais
echo $sql
j'ai
SELECT IdJ FROM NP2_Perso WHERE Nom='Moi' AND Md5_passxxwd='b59c67bf196a4758191e42f76670ceba'
Ici mon le nom de mon champ MD5_passwd est faux, si je corrige la faute
j'ai alors
SELECT IdJ FROM NP2_Perso WHERE Nom='' AND Md5_passwd='d41d8cd98f00b204e9800998ecf8427e'
Le tout en uttilisant la ligne de code de Fyah
$sql="SELECT IdJ FROM NP2_Perso WHERE Nom='".$_POST['login']."'
AND Md5_passxxwd='".md5($_POST['password'])."'";
Précision technique,
Ca tourne sur un compte free et j'ai vraiement l'impression de bloquer sur un problème bidon
Par curiosité
tu as le courage de m'expliquer le principe du session_regenerate_id();
et des session fixation attacks ?
Sinon j'irais jeter un coup d'oeil à l'occasion
[^] # Re: une suggestion
Posté par Mais qui suis-je ? :) . Évalué à 2.
si je fait une redirection propre avec header()
ça marche,
en tout cas va falloir que je mene l'enquette
Cool je me suis enfin répondu à moi même je vais pouvoir voir le fameux easter egg
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.