begin process at 2012 05 28 17:08:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Authentification php


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

Authentification php

dimanche 9 janvier 2011 à 21:00:00 | Authentification php

rems675

Bonsoir,
J'ai un énorme problème et je comprend pas, ou plus du tout, j'ai tenté des millier de chose mais rien à faire.
Cela concerne une authentification en php avec une base MySql
j'ai une petit formulaire qui ressemble à ça :
Code :
]
    
        identifiez-vous....
    

        


            
    
            



[/color]


Et un fichier d'analyse login.php

Code PHP :
<?php
session_start();

	
	$db = mysql_connect('localhost','root','root') or die ('Erreur de selection'.mysql_error());
	mysql_select_db('CANALERT', $db)  or die ('Erreur de selection'.mysql_error());
	
	$isConnected = false;

	if( isset($_POST) && (!empty($_POST['username'])) && (!empty($_POST['password'])) )
	{
		$pass = md5($_POST['password']); // mise en variable du mot de passe crypté
		
		extract($_POST); // importe les variables dans la table des symboles, verifie chaque clé afin de controler si elle possede un nom de variable valide 				   // et verifie les collisions avec des varibles exsitantes dans la tables des symboles

		// on va recherche le mot de passe corresspondant à cet user
		$sql = sprintf( "SELECT login, password, nom, prenom, droit, mail FROM comptes WHERE login = '%s' AND password = '%s'", 
				mysql_real_escape_string($login), //protege les caracteres spéciaux d'une commande SQL, resiste a une attaque par injection sql pour 								        //connaitre les identifiant d'une personne
				mysql_real_escape_string($password));
		
		$req = mysql_query($sql) or die ('Erreur SQL : <br />'.$sql);
		
		// on verifie que l'user existe
		if( mysql_num_rows($req) == 1)
		{
			$data = mysql_fetch_assoc($req);
			// on verifie que sont mot de passe est bon
			if( $password == $data['password']
			{
				$isConnected = true;
			}
		}
	}


if($isConnected == true)
{
	$_SESSION['login'] = $data['login'];
	$_SESSION['nom'] = $data['nom'];
	$_SESSION['prenom'] = $data['prenom'];
	$_SESSION['email'] = $data['mail'];
	$_SESSION['privilege'] = $data['droit'];
	echo'Votre connexion est OK : voila les variable<br/><br/>';
	var_dump($_SESSION);
}
else
{
	echo 'Une erreur est survenue';
}
?>


Et lorsque je valide mon formulaire j'ai une page blanche !!! je suis vraiment perdu là !!! Si quelqu'un peut m'apporter de l'aide....
merci d'avance
dimanche 9 janvier 2011 à 22:33:42 | Re : Authentification php

amirabed



merci pour la confirmation
vendredi 14 janvier 2011 à 09:28:40 | Re : Authentification php

LDDL

Slt, je n'ai pas tester ton code mais ceci devrait t'aider à visionner tes variables et à comprendre d'ou vient le problème.

http://www.phpcs.com/tutoriaux/DEBOGUEUR-PHP-XDEBUG_1174.aspx
vendredi 14 janvier 2011 à 10:47:55 | Re : Authentification php

TychoBrahe

Salut,

Alors tout d'abord la solution à ton problème premier :
Code PHP :
			// on verifie que sont mot de passe est bon
			if( $password == $data['password']
			{
				$isConnected = true;
			}

Deux remarques :
1. Il manque la parenthèse de fermeture du if.
2. Cette étape est inutile car, si le mot de passe fourni n'était pas bon, ta requête n'aurait pas renvoyée de résultat.

Une autre remarque un peu plus générale qui est sans doute la source de ton problème : comment est-ce que tu stocke le mot de passe ? Haché en md5 ou en clair ? Dans ton script tu fait toutes tes comparaisons avec le pass en clair et non son hash, alors forcément s'il est stocké en md5 tu ne vas pas arriver à authentifier l'utilisateur.

Maintenant une énorme erreur :
Code PHP :
extract($_POST);

JAMAIS ! JAMAIS ! JAMAIS !
Dans le cas présent c'est une énorme faille de sécurité qui permet à quiconque de s'authentifier avec tous les paramètres qu'il souhaite (nom, droits, etc). Il permet en effet de forcer la valeur de $isConnected ainsi que de créer le tableau $data avec les valeurs que l'on souhaite à l'intérieur. Avec un identifiant/mot de passe inexistant, ni $data ni $isConnected ne sont remplacés et l'on arrive alors directement au bout de code qui va gentillement placer mes valeurs de $date dans la session. Et paf, je suis identifié avec les droits que je veux!


Cette discussion est classée dans : code, php, data, session, authentification


Répondre à ce message

Sujets en rapport avec ce message

Probléme de sessions. [ par BenXbox ] Slt à tous,Voila j'ai un probléme avec mon système de session, quant je rentre le pseudo et le mots de passe il me dit :Warning: session_start(): Cann Erreur lors de l'utilisation de sessions [ par auremy ] Bonjour,Je fais un site avec une partie réservé aux membres, ce qui nécessite donc une identification. Ayant regardé les messages à ce sujet, je n'ai erreur qui reste introuvable pour moi! [ par CaBBaLe ] Slt,Merci beaucoup à tous ceux qui poste des sources et des tutos, cela m'aide enormement car c'est avec ca que j'apprend.Mais là je vais vous demande pb authentification [ par lol236 ] bonjour,j'ai fait une page php d'authentification que j'ai appelée index.phple pb est que quand je vais sur le site, la page se lance en boucle et don Sessions :: problème ram-dam.net [ par Aka_rd ] Bonjour a tous! Je viens de lancer un site web (www.ram-dam.net),mais comme d'habitude, au moment de mettre le tout en ligne, des problèmes apparraiss probleme de session [ par alahyaneali ] Bonjourj'ai un petit probleme avec ma session phpen fait je voudrais juste afficher l'id de ma session et quand j'ecris au début de ma page session_st inéxécution d'un code JS dans du php [ par Eric25 ] Bonjour,Dans mon code php, j'éxécute du javascript. Le pb est que lorsque ce script n'est pas suivi par le reste du code php, celui-ci fonctionne très pb session urgent! [ par chamallow ] Bon c'est la prmeière fois que je fais un code d'authentification, mais bon.En fait, il faut que je rende l'accès au site sécurisé, seul quelques util Probleme d'auorisation? [ par ghostkill77 ] Bonjour a toutes et a tous. J'ai un souci avec mon code :    session_start();    //AJOUTER    if($_POST["envoi"]=="AJOUTER" && $_POST["code"]!=" " && Variables de session perdues [ par Benz ] Bonjour,Une question relative à l'utilisation des variables de session.Dans une page a.php, j'ai le code suivant en haut de page, avant tout code HTML


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 : 3,011 sec (3)

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