Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2012, 14h10   #1
Invité régulier
 
Inscription : janvier 2009
Messages : 32
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 32
Points : 5
Points : 5
Par défaut Inscription et identification sécurisé

Bonjour à tous,

Je suis en train de créer un gros site et je veux faire des zones membres.

Quelqu'un connaitrais un Tuto ou une façon de procéder pour créer des identifications sécurisés (Cryptage du MDP dans las base, sécurité sur les zones de texte, utilisation spécifique des variables SESSION, etc...) ?

Merci d'avance.
chido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 14h19   #2
Membre régulier
 
Guillaume M.
Inscription : décembre 2010
Messages : 60
Détails du profil
Informations personnelles :
Nom : Guillaume M.

Informations forums :
Inscription : décembre 2010
Messages : 60
Points : 83
Points : 83
Concernant l'encodage des passwords dans la base de données j'ai pris l'habitude de concaténer un "salt" (chaine de 10 caractères alphanumériques aléatoire) avec le password, le tout encoder en SHA1, soit :
Le salt est stocké dans la table des utilisateurs.

Je laisse d'autre personnes répondre sur les autres points.
gmarsay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 17h49   #3
Invité régulier
 
Inscription : janvier 2009
Messages : 32
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 32
Points : 5
Points : 5
Merci je vais jeter un coup d’œil la dessus
chido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2012, 18h59   #4
Invité régulier
 
Inscription : janvier 2009
Messages : 32
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 32
Points : 5
Points : 5
Alors j'ai bien réussi à encoder mon pass :
Code :
$password_crypte = sha1(sha1($password).$salt);
Ensuite, quand l'utilisateur tapera son mdp pour ce loger, je dois encoder sa frappe de la même manière et comparer ?
chido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2012, 04h12   #5
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 874
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 874
Points : 1 361
Points : 1 361
salut,

juste quelques infos pour bien comprendre la notion de "sécurisé":
  • il n'existe aucune fonction de cryptage native en php, compatible avec mysql...
  • md5,sha1, etc... sont des fonctions de hashage... en aucun cas des fonctions de cryptage...
  • si tu veux faire une vraie zone sécurisée: ssl (tu cryptes l'échange), cryptage coté mysql (mot de passe) avec les fonction de cryptage (je te conseille AES, meilleure, ou DES, un peu moins sécurisée)...
md5 et sha1 sont cassables car on peut générer une collision: étant donné que plusieurs valeurs peuvent donner la même clé de hash, il suffit de trouver une des valeurs et non pas la valeur initialement utilisée...
comme ça ne se fait pas "au hasard", il existe des méthodes pour trouver une solution assez rapidement...

si tu veux utiliser ces fonctions confondues avec des système de cryptage, il faut impérativement limiter le nombre de tentative et bloquer l'IP pendant un certain temps ou définitivement (mais c'est pas conseillé vu que la majorité des gens ont une IP non fixe)...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant
soyons
pensez à mettre et
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2012, 23h24   #6
Invité régulier
 
Kevin Grosgojat
Inscription : décembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Kevin Grosgojat
Âge : 21

Informations forums :
Inscription : décembre 2010
Messages : 16
Points : 9
Points : 9
Envoyer un message via MSN à eclectique_95470
Salut eric,

Tu parles de SSL pour le cryptage mais ceci n'as rien a voir avec le code. C'est, a ma connaissance un protocole d'echange client serveur utilisant le port 443 au lieu du port HTTP classique le 80 et donnant lieu au protocole HTTPS.

Ceci est une affirmation mais aussi une question, je serais ravi d'en apprendre a ce sujet, n'étant pas expert en ce domaine.
eclectique_95470 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2012, 01h52   #7
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 874
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 874
Points : 1 361
Points : 1 361
oui et non

car tu peux tester comment les échanges sont fait en php par exemple, garantir que ssl est bien activé...

selon les réglages et comment tu te connectes (openssl ou openid entre 2 serveurs ou simple communication client/serveur) tu dois faire plus ou moins de choses...

si on est dans un échange client/serveur classique, en effet, c'est la couche apache qui se débrouille avec le client... toi tu dois juste tester que le protocole est bien actif pour la communication entre php et client pour être sur que l'échange est bien crypté...

la différence c'est aussi la rapidité d'encryptage/décryptage:
  • ssl c'est du rsa, algorithme de cryptage à clé publique, donc plus lourd et dur à casser (à utiliser généralement pour les transactions sensibles)
  • AES utilisé pour le cryptage de documents ou identifiants, tu utilises là aussi une clé de cryptage, privée, mais il faut aussi éventuellement choisir différents paramétrages pour que ça marche (qui peuvent être figés lors de l'implémentation comme dans le cas de mysql)...
  • 3DES, la seule implémentation du DES qui résiste encore un peu à un cassage rapide, le DES étant trop facile à casser avec les machine actuelles... aucune clé à échanger
que tu codes le message complet via ssl ou par un protocole en clair que tu chiffres à la main ça revient au même...
après faut adapter au besoin selon que tu veux un canal sécurisé ou juste du ponctuel... et aussi la taille des échanges que ça engendre...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant
soyons
pensez à mettre et
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2012, 12h21   #8
Invité régulier
 
Kevin Grosgojat
Inscription : décembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Kevin Grosgojat
Âge : 21

Informations forums :
Inscription : décembre 2010
Messages : 16
Points : 9
Points : 9
Envoyer un message via MSN à eclectique_95470
Voila qui m'éclaire,

Merci eric
eclectique_95470 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h16.


 
 
 
 
Partenaires

Hébergement Web