Espace membre: Impossible d'authentifier

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Espace membre: Impossible d'authentifier

par Cyrano » 19 oct. 2005, 09:14

C'est aussi sécurisé voire mieux que md5 et ça présente un avantage : md5() ou sha1() sont des méthodes de hachage irréversible. Si l'internaute abonné perd son mot de passe, il faut en générer un nouveau. AES_ENCRYPT en rechange est une méthode de cryptographie réversible. Ça n'en est pas moins crypté et l'ajout d'une clé de cryptage rend le système encore moins évident à casser. Et en utilisant AES_DECRYPT, tu peux inverser le processus pour renvoyer son mot de passe à l'étourdi qui a perdu le sien.

par Invité » 19 oct. 2005, 02:29

est ce une methode securise? ou bien le md5 est la meilleure

par Cyrano » 18 oct. 2005, 20:56

Ça peut bien ne pas fonctionner alors .... la requête n'est pas bonne et il ne faut pas traiter le mot de passe avec md5() mais directement en SQL avec AES_ENCRYPT:
<?php
//....
$req = "SELECT * FROM administration WHERE login='". $log ."' and mdp=AES_ENCRYPT('". $mdp ."', 'cle_de_chiffrement');";//avec chiffrement SQL AES_ENCRYPT pour le mdp
//....
?>

par Invité » 18 oct. 2005, 20:40

avec AES_ENCRYPT

par Cyrano » 18 oct. 2005, 20:35

Mouais, sauf que la proposition au niveau de l'opérteur ternaire me semblait un peu farfelue. Je ne suis pas certain que le résultat attendu était le bon, mais ça avait l'air de fonctionner si j'en juge par l'affichage de ta requête. Maintenant il faudrait savoir si ça fonctionne ou non: dans ta base, les mots de passes sont bien hachés avecc md5() ?

par Invité » 18 oct. 2005, 20:29

j ai deja corrige le code comme addslasche => addslashes ...

par Cyrano » 18 oct. 2005, 20:27

Le code proposé par jeff revu et corrigé:
<?php
session_start();//demarrage de la session
include ('config.php');

$log = isset($_POST['login']) ? addslashes(trim($_POST['login'])) : 'inconnu';
$mdp = isset($_POST['mdp'])   ? addslashes(trim($_POST['mdp']))   : 'inconnu';

$connection = mysql_connect($host, $user, $pass) or die(mysql_error());
$req = "SELECT * FROM administration WHERE login='". $log ."' and mdp='". md5($mdp) .";";//avec hachage md5 pour le mdp
$res = mysql_query($req) or die ('Erreur:'.mysql_error());
if(mysql_num_row($res) > 0)//verif de l'existence de l'utilisateur
{
    $_SESSION['log']  = $log;
    $_SESSION['auth'] = "oui";
}
else
{
    echo 'non';
}
?>

par Invité » 18 oct. 2005, 20:18

echo $res => Resource id #8non
echo $req => select * from administrator where login="Admin" and passwd="e3afed0047b08059d0fada10f400c1e5"non

par jeff » 18 oct. 2005, 17:46

verifie la requete, fait en un echo
et teste le sous phpmyadmin et voi si tu a un resultat

par Invité » 18 oct. 2005, 17:41

il se logue pas, le meme probleme

par jeff » 18 oct. 2005, 16:33

bon voila ce que je te propose
session_start();//demarrage de la session
include ('config.php');

isset($_POST['login'])?$log=addslashes(trim($_POST['login'])):$log='inconnu';
isset($_POST['mdp'])?$mdp=addslashes(trim($_POST['mdp'])):$mdp='inconnu';

$connection = mysql_connect($host, $user, $pass) or die(mysql_error());
$req='select * fron administration where login="'.$log.'" and mdp="'.md5($mdp).'"';//avec achage md5 pour le mdp
$res=mysql_query($req) or die ('Erreur:'.mysql_error()); 
if(mysql_num_row($res)>0)//verif de l'existence de l'utilisateur
{
$_SESSION['log']=$log;
$_SESSION['auth']='oui';
}
else
echo 'non';
la gestion des erreurs n'est pas faite

par Invité » 18 oct. 2005, 15:58

<?
include ('config.php');

if(isset($_POST['date'])) $date = $_POST['date'];
else $date = '';
if(isset($_POST['login'])) $login = $_POST['login'];
else $login = '';
if(isset($_POST['passwd'])) $passwd = (md5($_POST['passwd']));
else $passwd = '';

$date = date("d-m-Y");


if ($login == '')
{
    echo("<font face=verdana size=2>Username field is empty</font>&nbsp;&nbsp;"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
    echo("<a href=\"javascript:history.back()\"> Return </a>");
}
elseif ($passwd == '')
{
   echo("<font face=verdana size=2>Password field is empty</font>&nbsp;&nbsp;"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
    echo("<a href=\"javascript:history.back()\"> Return </a>");
}
elseif (strlen($login) < 4)
{
    echo("<font face=verdana size=2>Username field is less than 4 characters</font>&nbsp;&nbsp;"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
    echo("<a href=\"javascript:history.back()\"> Return </a> <br>");
}
else
{
    $connection = mysql_connect($host, $user, $pass) or die(mysql_error());
    $db = mysql_select_db('database', $connection) or die(mysql_error());
    $sql = "SELECT * FROM administrator WHERE passwd = '". $passwd ."'";
    $result = mysql_query($sql,$connection) or die(mysql_error());
    //get the number of rows in the result set
    $num = mysql_num_rows($result);
    //print a message or redirect elsewhere, based on result
    if ($num == 1 )
    {
                $_SESSION['login'] = $login;
              ?>
<p>Welcome <?php echo($login); ?></p>
<a href="index.php?menu=logout" name="logout">LogOut</a><br>
<a href="index.php?menu=MyAdmin&page=page1">Next</a>
<?php
            }

    else
    {
?>
<p>You're not granted to acceed here : Go out</p>
<a href="index.php" name="retour_accueil" title="Retour à la page d'accueil">Page d'accueil</a>
<?php
    }
    mysql_close();
}
?>

par jeff » 18 oct. 2005, 09:16

salut
peut on voir les données envoyées par ton formulaire

par belette33 » 18 oct. 2005, 00:51

echo $mysql_num_rows($sql);

Ca sera dja mieux

par Invité » 17 oct. 2005, 23:05

il donne byebye soit le login+pass sont corrects ou incorrects