• STATISTIQUES
  • Il y a eu un total de 0 membres et 46644 visiteurs sur le site dans les dernières 24h pour un total de 46 644 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [EN] phrack
    Lot's of stuff !
    Hacking
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [FR] PHP France
    Pour tout savoir sur le PHP, en français. Vous trouverez des tutoriels, des exemples, des astuces, toute la do...
    Hacking
    [EN] Hack this site
    Basic: 11, Realistic: 17, Application: 18, Programming: 12, Extbasic: 14, Javascript: 7, Stego: 17
    Challenges
    [EN] HackQuest
    Logic: 12, JavaScript: 14, Applet: 6, CrackIt: 13, Crypto: 11, Internet: 3, Exploit: 7, Stegano: 12, Flash: 1, Programmi...
    Challenges
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Php] Génération de clefs d'activation
06-12-2011, 23h06 (Modification du message : 19-11-2012, 19h08 par InstinctHack.)
Message : #1
Saitek Hors ligne
Membre
*



Messages : 30
Sujets : 4
Points: 0
Inscription : Oct 2011
[Php] Génération de clefs d'activation
Bonjour, je développe actuellement mon petit site et je veux faire une inscription. Pour ça j'ai besoin d'une clef d'activation qui se génèrerait au moment de l'inscription et qui enverrait un mail de confirmation.

Voici la page d'inscription : http://pastebin.com/VbF4fzXp
Et voici la page qui a pour but d'activer le compte : http://pastebin.com/Ee9gXXJE
(je suis désolé pour l'indentation qui laisse vraiment à désirer mais les deux pages sont en plein chantier)

En fait, le mail s'envoie très bien avec le lien pour activer.
Sauf que le problème se situe au niveau de la génération de la clef.
A l'inscription elle ne s'enregistre pas dans la table.

Voici le code que j'utilise pour créer et inscrire la clef d'activation dans la table :

Code PHP :
// Génération de la clef d'activation
$caracteres = array("a""b""c""d""e""f"0123456789);
$caracteres_aleatoires array_rand($caracteres8);
$clef_activation "";
 
foreach(
$caracteres_aleatoires as $i)
{
$clef_activation .= $caracteres[$i];
}
 
// Création du compte utilisateur
$result mysql_query("
INSERT INTO comptes_utilisateurs(
Nom_Utilisateur
, Mot_de_Passe
, Adresse_Email
, Date_Inscription
, Clef_Activation
)
VALUES(
'" 
$_POST["tb_nom_utilisateur"] . "'
, '" 
md5($_POST["tb_mot_de_passe"]) . "'
, '" 
$_POST["tb_adresse_email"] . "'
, '" 
time() . "'
, '" 
$clef_activation "'
)
"
); 

L'erreur se situe bien ici ? Comment puis-je faire pour la résoudre ?
Bien à vous, saitek fier membre.
+1 (0) -1 (0) Répondre
07-12-2011, 02h36
Message : #2
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
Clef d'activation (génération ?)
Pour la clée, ce serais pas mal plus simple de faire ça
Code PHP :
$clef_activation md5(time()); // 32 characters long 

ou si tu as peut que 2 personnes s'incrive a la même miliseconde (ce qui est trèes peu probable lol)
Code PHP :
$clef_activation md5uniqid() );  // 32 characters long
// ou
$clef_activation sha1uniqid() );  // 40 characters long 
+1 (0) -1 (0) Répondre
07-12-2011, 14h45 (Modification du message : 07-12-2011, 15h11 par Saitek.)
Message : #3
Saitek Hors ligne
Membre
*



Messages : 30
Sujets : 4
Points: 0
Inscription : Oct 2011
Clef d'activation (génération ?)
Merci pour ta réponse CyberSee, oui effectivement ce serait plus simple. Cependant je n'ai pas besoin de crypter la clef. Je l'ai ainsi réduite à 8 caractères, ça me semblait suffisant.

Je vais tout de même tester ce code, merci Smile
Y'a des erreurs dans mon code ? Ou ça paraît bon ? Vous savez d'où peut venir le fait que la clef ne s'inscrive pas dans la table ?

EDIT : super la clef d'activation s'inscrit dans la table. Par contre je tombe toujours sur une 404 avec le lien...
+1 (0) -1 (0) Répondre
09-12-2011, 10h38 (Modification du message : 09-12-2011, 10h39 par supersnail.)
Message : #4
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,609
Sujets : 71
Points: 465
Inscription : Jan 2012
Clef d'activation (génération ?)
Bonjour,

Vérifie que ton lien pointe réellement vers ta page (ce qui ne doit pas être le cas, vu que ton serveur renvoie un 404).

Ta page de validation est bien nommée activer-compte-utilisateur.php et se situe-elle bien à la racine du site? Ton lien te paraît cohérent? Wink
+1 (0) -1 (0) Répondre
10-01-2012, 14h14
Message : #5
Saitek Hors ligne
Membre
*



Messages : 30
Sujets : 4
Points: 0
Inscription : Oct 2011
Clef d'activation (génération ?)
Je vous prie de m'excuser pour la lenteur de ma réponse.
Ma page activer-compte-utilisateur.php n'était effectivement pas à la racine.
Erreur corrigée depuis, même si entre temps j'ai opté pour un système pré-fait.
Merci à toi aaSSfxxx Smile
+1 (0) -1 (0) Répondre
12-01-2012, 01h04
Message : #6
teach Hors ligne
Newbie
*



Messages : 8
Sujets : 1
Points: 0
Inscription : Jun 2011
Clef d'activation (génération ?)
CyberSee a écrit :Pour la clée, ce serais pas mal plus simple de faire ça
Code PHP :
$clef_activation md5(time()); // 32 characters long 

Lol @CyberSee j'espere que t'ecris pas ça dans tes codes en production ou tu vas te faire owner matin midi et soir.
Qu'est ce qui empeche un autre utilisateur de generer la meme clé sachant que md5() est deterministe et que la valeur de time() à ce moment est publique? Wink
+1 (0) -1 (0) Répondre
12-01-2012, 05h47
Message : #7
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
Clef d'activation (génération ?)
Dans le contexte d'un petit site tel que celui de Saitek, les chances que 2 personnes s'inscrivent à la même micro seconde sont assez mince et ce même s’ils sont en contact et ce mettent d'accord pour peser en même temps lol Mais pour répondre a ta question, non je n'utilise pas time() mais plutôt l'alternative que j'ai citée plus haut ;-)
+1 (0) -1 (0) Répondre
12-01-2012, 20h07
Message : #8
Saitek Hors ligne
Membre
*



Messages : 30
Sujets : 4
Points: 0
Inscription : Oct 2011
Clef d'activation (génération ?)
Qui te dit que j'ai un petit site :p
Je prépare secrètement le facebook de demain :eek:
+1 (0) -1 (0) Répondre
12-01-2012, 21h42
Message : #9
teach Hors ligne
Newbie
*



Messages : 8
Sujets : 1
Points: 0
Inscription : Jun 2011
Clef d'activation (génération ?)
CyberSee a écrit :Dans le contexte d'un petit site tel que celui de Saitek, les chances que 2 personnes s'inscrivent à la même micro seconde sont assez mince et ce même s’ils sont en contact et ce mettent d'accord pour peser en même temps lol Mais pour répondre a ta question, non je n'utilise pas time() mais plutôt l'alternative que j'ai citée plus haut ;-)

A premiere vue, l'alternative que tu proposes n'est toujours pas plus secure. uniqid() n'est pas si differend sous le capot que time(). Les 8 premiers caractères retournés correspondent simplement à la valeur de time() en hexa et les 5 derniers correspondent à la precision en millisecondes. Comme je l'ai dit plus haut, vu que la date à laquelle le clé à été generé est connu de l'attaquant, pour qu'il puisse regenerer la même clé il ne lui suffit que de connaitre les 5 derniers caractères restant. 5 caractères hexa c'est très facilement bruteforcable (de l'ordre de quelques minutes sur une machine courante).
L'avantage de pouvoir regenerer une clé d'activation inconnu devient vite évident si tu considère les systèmes de reinitialisation de mot de passe.
Dans un souci de completude, la meilleur solution serait d'utilliser uniqid avec son premier paramètre et surtout son second parametre à true pour plus d'entropie
+1 (0) -1 (0) Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 5 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut