![]() |
Mots de passe et salt : explications - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Mots de passe et salt : explications (/showthread.php?tid=5184) |
Mots de passe et salt : explications - Viciousity - 20-01-2011 La sécurité par le "Salt". 1. Explications. Le "Salt" est une méthode qui est utilisée de plus en plus dans la programmation pour sécuriser des données. Cette méthode repose sur un principe simple: Chaque compte est unique et possède donc une clé et un hash unique. On est tous un grain de sable dans un immense sablier et chaque grain est unique par sa composition. Cela permet une sécurité accrue car même si une personne mal-intentionnée réussi a récupérer les infos de votre base de données et de trouver l'algorithme pour passez outre un mot de passe, elle ne pourra le faire que pour un seul compte. Cette méthode permet donc de "Perdre" le mot de passe d'origine, ainsi, on ne peut, a moins d'être un hacker plus que pro, retrouver votre mot de passe réel. On parle donc de HASH et plus de cryptage. 2. Prérequis à la mise en place. Pour mettre en place cette méthode, vous avez besoin de:
3. On se lance. A. Création du compte.
B. Récupération des infos.
4. Conclusion. Cette méthode est vraiment très simple a mettre en place et vous permettra d'avoir une sécurité maximale pour vos utilisateurs. Alors n'hésitez pas a mettre votre "grain de sel" pour ennuyer les personnes malveillantes ![]() PS: Le script est a titre informatif, il faut donc l'implanter et non simplement le copier. En efftet, il ne prend pas en compte le "Never trust user input". De plus ayant l'habitude de travailler avec un ORM et en orienté objet, les méthodes d'insertions et de récupération de données sont plus que douteuse ;P En espérant vous avoir aidé, Viciousity. Un grand merci a anthor pour le hash('sha256',""); RE: SALT: explication. - Kihmé - 20-01-2011 merci beaucoup, très sympa ce genre de ressources RE: SALT: explication. - Anthor - 20-01-2011 On confond moins hashage et cryptage, mais pourquoi nommer une fonction de hashage par un nom de cryptage ?! Sinon a partir de PHP 5.1.2 :
RE: SALT: explication. - Ter Rowan - 20-01-2011 c'est quand même hash-ement plus propre que le précédent, merci ! effectivement le nom encrypt pour du hash me perturbait un peu mais peu importe par contre je pense qu'il est intéressant de modifier le code pour tenir compte de la fonction présentée par anthor de plus pour tous ce genre de sujet, je pense qu'on devrait systématiquement appeler une fonction/méthode de sécurisation, quitte à appeler une fonction non définie pour sécuriser le contenu (au lieu d'utiliser $_POST en disant qu'il ne faut pas faire comme ça) Ca permettrait ainsi d'éviter que certains utilisent le code sans connaitre les failles. d'un point de vue discipline c'est limite moins compliqué (écrire SafeText( $_POST['toto'] ) ou un autre nom plus parlant est assez simple :p ) RE: SALT: explication. - Argorate - 20-01-2011 Cependant je reste sur mon idée que c'est du gâchis de stocker en bdd un très grand nombre de caractère pour le salt qui multiplié par des milliers de joueur potentiels remplit et alourdi la bdd pour rien, autant utiliser des données unique a chaque membre mais déjà présente en bdd (pseudo, time de dernier connexion, date d'anniversaire ou que sais-je d'autre...) Mais bon ça c'est de l'optimisation, le principe est le même. RE: SALT: explication. - nicodd - 20-01-2011 Sauf que toutes ces données là sont amenées à changer, donc tu ne pourra plus connecter ton joueur lorsqu'il change de pseudo, lorsqu'il se connecte (j'espère que tu vois toute l'ironie de la chose), ou décide pour une raison quelconque de changer sa date de naissance. RE: SALT: explication. - Viciousity - 20-01-2011 Voila, merci a anthor pour ses remarques, j'ai donc modifié le code en conséquence ![]() Et nicodd vient de répondre a ta question Argorate ![]() Surtout que je ne pense pas que un SEUL champ en plus alourdisse énormément ta base de données ;P RE: SALT: explication. - Argorate - 20-01-2011 Si tu prends une donner modifiable, il suffit de faire la rectification s'il change de pseudo ou de date de naissance. Maintenant j'ai dis ça parce qu'en général ça ne change pas... Effectivement c'est s'embêter la vie pour rien mais bon. ^^ EDIT: Viciousity : dans ton exemple tu prend le time() + autre chose, ça fait beaucoup de caractères, sur des jeux qui ont du succès à 50 000 joueurs, ça en fait quelqu'un d'octet quand même ![]() RE: SALT: explication. - Holy - 20-01-2011 (20-01-2011, 05:01 PM)nicodd a écrit : Sauf que toutes ces données là sont amenées à changer, donc tu ne pourra plus connecter ton joueur lorsqu'il change de pseudo, lorsqu'il se connecte (j'espère que tu vois toute l'ironie de la chose), ou décide pour une raison quelconque de changer sa date de naissance.N'empêche qu'y a quand même des données qui changent jamais, comme la date d'inscription par exemple. RE: SALT: explication. - Anthor - 20-01-2011 (20-01-2011, 05:15 PM)Argorate a écrit : Si tu prends une donner modifiable, il suffit de faire la rectification s'il change de pseudo ou de date de naissance. Ah et tu modifies comment ton pass hashé que tu ne connais pas ? |