Canalblog
Suivre ce blog Administration + Créer mon blog

Blog d'un programmeur

19 février 2006

Systeme d'identification performante (PHP/MySql ;))


1°] Mais c'est quoi une authentification forte ?

Une authentification permet de verifier que la personne a qui vous parlez est bien celle a qui vous croyez parler en lui posant une ou plusieurs questions. Elle est dite forte quand plusieurs questions sont demandées. Le fameux login/pass.
\
2°] Stockage des données

Vous savez tous qu'il est possible de penetrer frauduleusement dans une base de données (SQL ou autre) et donc qu'il faut proteger vos mots de passe. Un hash faisant bien souvent l'affaire mais le temps que le "pirate" mettra a le cracker dependera de la longueur du mot de passe (donc de l'utilisateur) , ce qui n'est pas vraiment commode.

Nous allons donc beaucoup compliquer la tache du "pirate" en cryptant les données.

-Mais ca revient au meme !-,me direz vous. Eh bien non, car au lieu de stocker un mot de passe et un login, nous n'allons stocker qu'un seul champs.

Nous allons utiliser un algorythme de cryptage a cle privée (ex: Blowfish) .Je ne sais malheuresement pas comment on utilise Blowfish en php (j'utilise un autre algorythm pour ce site :D), j'espere qu'une ame bienveillante est dans le coin :o, pour le môment j'utiliserais Blowfish(message, cle).


Code:
Blowfish($login, $mdp.$clesys


Vous remarquerez le $clesys qui est une cle systeme propre a votre site qui compliquera encore la tache du "pirate" (d'ailleurs a l'heure actuelle je ne vois pas comment il pourrais contourner ca ^^).

Pour utiliser un forum ou des choses utilisant un pseudo il faut forcer l'utilsateur à en utiliser un different de son login.

3°] Script d'enregistrement


<?
mysql_connect();

if (isset($_GET['submit'])) { /*register_global doit etre off ;)*/

$login = isset($_POST'login']) ? htmlentities ( stripslashes ($_POST['login'])) : FALSE;
$pseudo = isset($_POST'pseudo']) ? htmlentities ( stripslashes ($_POST['pseudo'])) : FALSE;
$mdp = isset($_POST['mdp']) ? htmlentities ( stripslashes ($_POST['mdp'])) : FALSE;

if ($login && $pseudo && $mdp) {

if ($login == $pseudo) {
echo "Votre login est identique a votre pseudo, veuillez en choisir un different !";
exit();
}

/*uid sera le champs unique d'authentification hashe, en plus, en SHA1*/
$clesys = '147';
$uid = Blowfish($login, $mdp.clesys);

$requete = "INSERT INTO $table (uid, pseudo) VALUES (SHA1('{$uid}'), '{$pseudo'})";
if (@mysql_query ($rq)) {
echo 'Merci de vous etre enregistre';
} else {
echo 'Un erreur system empeche votre enregistrement';
}

} else {
echo "Un des champs specifie n'est pas valide.";
}

} else {

//afficher le formulaire

}

?>


4°] Script de login



<?
mysql_connect();

if (isset($_GET['submit'])) {

$login = isset($_POST'login']) ? htmlentities ( stripslashes ($_POST['login'])) : FALSE
$mdp = isset($_POST['mdp']) ? htmlentities ( stripslashes ($_POST['mdp'])) : FALSE;

if ($login && && $mdp) {

$clesys = '147';
$uid = Blowfish($login, $mdp.clesys);

$rq = "SELECT * FROM $table WHERE uid=$SHA1('{$uid}')";

/*reste du script, a vous de voir pour ca ;)*/

} else {

echo "Couple login/mot de passe incorrect";

}

}else {

//afficher formulaire

}

?>


r3drum, r3drum@ProgCity.info

Publicité
19 février 2006

Imagine Cup

Tout d'abod, c'est quoi Imagine Cup ?

GoTo => thespoke.net

Bon pour ceux qui ont peur de l'Anglais, Imagine Cup c'est un "concours" organisé par notre bon vieux Billou (Createur de Microsoft pour ceux qui connaissent pas). Il y a 6 epreuves: 

  • Visual Gaming (Projet Hoshimi)
  • Court Metrage
  • Algorithm (pour les plus matheux d'entre vous ;))
  • Interface Designer
  • Information Technologie (rapport avec la communication)
  • Devellopement logicielle (le jugement se fera a 60% sur le design ;))

Bon, dans ce blog je ne parlerais que du Projet Hoshimi.

@bientot pour de nouvelles aventurs ;)

19 février 2006

Ouverture du blog

Bon bha voila, Blog d'un programmeur ouvre ce 19 fevrier 2006 il est 22:36 ^^

Tout d'abord une petite description. Je suis r3drum et comme le dit le titre de mon blog, je programme (surtout en Java mais aussi en PHP/Sql, C# pour l'Image Cup, C++ et bien evidement XHtml). Je participe a l'Image Cup dans la categorie Visual Gaming (Hoshimi Project, programming battle).

@bientot sur ce blog pour de nouvelle aventures ;)

Publicité
Publicité