IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

fonction d'authentification contournable ?


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 17
    Points
    17
    Par défaut fonction d'authentification contournable ?
    bonjour j'ai fait une petite fonction d'authentification à insérer dans toute les pages mais je me fais hacker. Je pense qu'elle a un problème mais je n'arrive pas à le trouver. Voilà ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    function securiter($table,$redirect)
    {
     
    if ((!isset($_POST['log'])) && (!session_is_registered('siad_pass')))
    {
    echo"<script language='javascript'> alert('Veuillez vous identifier  ! ');</script>";
     echo"<script language='javascript'>";
    echo" document.location='".$redirect."'";
     echo"</script>";
    }
    else 
    {
    if (session_is_registered('siad_pass'))
    {
    $password=$_SESSION['password'];
    $login=$_SESSION['login'];
     
    }
    else
    {
     
    $login=$_POST['log'];
    $password=md5($_POST['pwd']);
     
    $v=mysql_query("select * from $table where login='$login' and password='$password'");
    $d=mysql_num_rows($v);
     
    if (!$d)
    {
    echo"<script language='javascript'> alert('erreur sur le login ou sur le mot de passe  ! ');</script>";
     echo"<script language='javascript'>";
    echo" document.location='",$redirect,"'";
     echo"</script>";
    }
    else
    {session_register('siad_pass');
    $_SESSION['login']=$login;
    $_SESSION['password']=$password;
    $_SESSION['id']=$d;
    }
    }
    }
    }
    merci pour votre aide

  2. #2
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Injection SQL
    Bonjour,

    A priori je pencherais pour un problème d'injection SQL: ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $v=mysql_query("select * from $table where login='$login' and password='$password'");
    utilise directement les valeurs des variables POST. Ainsi, si l'utilisateur saisi quelque chose du genre en login. Ta requête SQL renverra toutes les lignes de ta table $table de façon systématique et l'utilisateur sera authentifié d'après ton code.

    Une règle de base est de TOUJOURS filtrer TOUTES les variables provenant de l'extérieur et utilisées dans un script. En PHP, il existe par exemple des fonctions pour échapper les quotes et autres caractères spéciaux (addslashes(), cf. doc PHP) avant d'utiliser les variables dans une requête SQL (+ possibilité magic_quotes). Le mieux restant à mon avis, et de loin, d'utiliser des "prepared statements" lors des appels aux BDD mais je ne sais pas si c'est possible en PHP avec l'extension mysql classique (je ne suis suffisamment habitué à PHP). mysqli les propose en tout cas mais je ne les ai jamais utilisés.

    En espérant avoir été utile ;-) !

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/12/2008, 17h55
  2. problème dans une fonction d'authentification
    Par sarita_ima dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/09/2008, 14h59
  3. [Joomla!] les fonctions d'authentification de Joomla ?
    Par othmane126 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 14/05/2008, 16h59
  4. Réponses: 3
    Dernier message: 18/12/2006, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo