8792 sujets

Développement web côté serveur, CMS

Bonjour, j'ai ouvert un forum dans lequel seulement un certain nombres de personnes (768) ont le droit de s'inscrire.
J'ai reçu le listing de ces personnes (avec nom, prénom, email, etc.) que j'ai encodé dans une table "punBB_users_temp" (mon forum est punBB).

Maintenant, je voudrais construire un script php qui enverra un mail à toutes ces personnes leur donnant un lien spécifique menant à la fiche d'inscription sécurisée (qui sera préremplie avec les données temporaires).

Ma question : Comment faire que ce lien soit unique ?
Je veux dire, il en faut pas que ce soit par exemple inscriptionforum.php?nom=willis&prenom=bruce;
sinon tout le monde pourra chipoter avec l'accès des autres si ils connaissent leurs noms.
Je pensais (mais je ne suis pas un monstre de php donc ce n'est peut être pas la meilleure idée) crypter, par exemple; le nom et le prénom de la personne en md5 pour avoir quelque chose comme
inscriptionforum.php?key=9d0855b3b433ef2be5754352a4f40300.

Dans un second temps, quand la personne clique sur le lien, la valeur cryptée est comparée à la table et si un résultat sort, l'inscription continue.

Est ce la bonne méthode ? Est ce sécurisé ?

D'autre part, puis-je envoyer 768 mails à la volée via un script ou dois-je m'assurer de paramètres concernant le délai d'exécution ?
Comment m'assurer que les mails ont bien été envoyés ?

Merci d'avance pour vos précieuses réponses !
gordie a écrit :
Bonjour, j'ai ouvert un forum dans lequel seulement un certain nombres de personnes (768) ont le droit de s'inscrire.
J'ai reçu le listing de ces personnes (avec nom, prénom, email, etc.) que j'ai encodé dans une table "punBB_users_temp" (mon forum est punBB).


Je ne connais pas punbb.

a écrit :
Maintenant, je voudrais construire un script php qui enverra un mail à toutes ces personnes leur donnant un lien spécifique menant à la fiche d'inscription sécurisée (qui sera préremplie avec les données temporaires).

Ma question : Comment faire que ce lien soit unique ?
Je veux dire, il en faut pas que ce soit par exemple inscriptionforum.php?nom=willis&prenom=bruce;
sinon tout le monde pourra chipoter avec l'accès des autres si ils connaissent leurs noms.
Je pensais (mais je ne suis pas un monstre de php donc ce n'est peut être pas la meilleure idée) crypter, par exemple; le nom et le prénom de la personne en md5 pour avoir quelque chose comme
inscriptionforum.php?key=9d0855b3b433ef2be5754352a4f40300.

Dans un second temps, quand la personne clique sur le lien, la valeur cryptée est comparée à la table et si un résultat sort, l'inscription continue.

Est ce la bonne méthode ? Est ce sécurisé ?


Il n'y a aucun intérêt à hasher en md5 une valeur connue: si je veux y accéder, et que le hash est basé sur le nom, et que je connaîs le nom, je peux très bien moi même hasher en md5.

Une méthode serait la suivante :

Tu rajoute une colonne dans ta base d'utilisateur. Tu fais un script qui met dans cette colonne une valeur de clé :


def generate_access_key 
@attributes[ ' access_key ' ] = MD5.hexdigest((object_id + rand(255)).to_s) 
end 


C'est du Ruby, mais tu peux faire quelque chose de similaire en php: tu prend l'object ID de n'importe quoi, tu rajoute un random et tu hashe le tout.

Ensuite quand les gens vont sur la page, tu vérifie que la clé existe, et tu regarde à quel utilisateur elle correspond.

Une recherche dans google avec " secret url " devrait te donner des réponses plus complètes dans ce genre là.

a écrit :
D'autre part, puis-je envoyer 768 mails à la volée via un script ou dois-je m'assurer de paramètres concernant le délai d'exécution ?
Comment m'assurer que les mails ont bien été envoyés ?

Merci d'avance pour vos précieuses réponses !


Pour voir si le mail a bien été envoyé : tu te met en CCI et tu compte les mails que tu reçoits Smiley cligne

Pour le délai d'exécution, ça dépend largement de ton hébergeur.
Cedric a écrit :

Il n'y a aucun intérêt à hasher en md5 une valeur connue: si je veux y accéder, et que le hash est basé sur le nom, et que je connaîs le nom, je peux très bien moi même hasher en md5.

Sauf si je fais une combinaison de plusieurs données : : la clé à crypter est par exemple ID_PRENOM_ANNEENAISSANCE_NOM : une fois cryptée, il n'est pas possible de retrouver les données à l'origine de la clé (et l'ID, par exemple, ne sait logiquement pas être connu puisqu'est incrémenté par la DB); et donc ça fonctionne, non ?

C'est juste pour être sur que personne ne s'amuse avec les inscriptions; mais ce ne va pas être un gros site donc ça devrait suffir non ??
Cedric a écrit :
Pour le délai d'exécution, ça dépend largement de ton hébergeur.

L'hébergement est un hébergement pro (enfin, "particulier" en tout cas), l'hébergeur est nexlink.ch.
??
Oui ça peut aller, mais rajouter à ça une valeur aléatoire et puis seulement faire un md5 du tout est encore mieux Smiley cligne

Pour l'hébergement je n'ai aucune idée. Fais un phpinfo() pour voir les délais que tu as peut être.

Et puis ... des tests Smiley langue