Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1429 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Meilleure solution sécurité pour site web PHP/Mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Meilleure solution sécurité pour site web PHP/Mysql

n°1896355
cilies1
Posté le 17-06-2009 à 17:04:56  profilanswer
 

Bonjour tout le monde,
 
Je me demandais quel est le meilleur moyen pour sécuriser un site web PHP/MYSQL qui contiendrai un espace
de stockages pour des documents administratifs. La sécurité est primmordiale pour ce site et je
suis novice.
 Aupravant la solution que j'ai utilisé pour un autre projet c'est enregistrement du user/pass dans le SGBD cryptage  
md5 du pass avec la fonction PHP. Je sais pas si c'est suffisant ? Comment peut-on encore améliorer la sécurité ?
 
Merci d'avance.

mood
Publicité
Posté le 17-06-2009 à 17:04:56  profilanswer
 

n°1896359
deuspi
Posté le 17-06-2009 à 17:13:00  profilanswer
 

cilies1 a écrit :

Bonjour tout le monde,
 
Je me demandais quel est le meilleur moyen pour sécuriser un site web PHP/MYSQL qui contiendrai un espace
de stockages pour des documents administratifs. La sécurité est primmordiale pour ce site et je
suis novice.
 Aupravant la solution que j'ai utilisé pour un autre projet c'est enregistrement du user/pass dans le SGBD cryptage  
md5 du pass avec la fonction PHP. Je sais pas si c'est suffisant ? Comment peut-on encore améliorer la sécurité ?
 
Merci d'avance.


Salut
 
Le meilleur moyen pour sécuriser un site, c'est de ne pas l'ouvrir au public :D (le garder uniquement en intranet)
 
Sinon pour répondre plus sérieusement à la question, la solution dont tu parles (login/password dans une bdd avec md5 pour encrypter) a le mérite de fonctionner, mais ça fait longtemps qu'on utilise l'algorithme md5, il commence à montrer des signes de faiblesse. Tu peux utiliser plutôt sha1 par exemple, tout en convervant le même principe. La doc pour cette fonction : http://php.net/sha1
 
Sinon tu as une technique beaucoup plus simple qui consiste à créer un mot de passe avec htpasswd et restreindre l'accès à l'aide d'un fichier .htaccess (exemple ici : http://www.vulgarisation-informatique.com/htpasswd.php)
 
Bon courage

n°1896367
cilies1
Posté le 17-06-2009 à 17:20:40  profilanswer
 

Merci pour la réponse.
Donc d'après toi la solution sha1 est sécuritaire.
Le problème pour htpasswd je ne vois comment ca fonctionne pour tous les utilisateurs qui vont utiliser le service.

n°1896376
deuspi
Posté le 17-06-2009 à 17:40:18  profilanswer
 

Pour le htpasswd, l'idée dans ce que je proposais est plutôt de sécuriser tout ou partie d'un site, au moyen d'un ou plusieurs mots de passes qui ne bougent pas sur la volonté des utilisateurs, mais plutôt du webmaster.  
 
Bien entendu, il est techniquement possible de rendre modifiables ces mots de passe mais c'est la galère comparé à un système géré en base de données.
 
La solution sha1 me semble satisfaisante pour crypter des mots de passe. C'est donc vers cette solution que je te conseille de t'orienter.

n°1896398
Profil sup​primé
Posté le 17-06-2009 à 19:04:18  answer
 

Sha1 est plus sécuritaire que md5 (pas mal de sites proposent de retrouver les mots de passes à partir de leur hash md5 au moyen de rainbow tables.)
Au passage, petite confusion deupsi, il s'agit ici de hashage et pas de chiffrement ;).

n°1896411
cilies1
Posté le 17-06-2009 à 19:59:56  profilanswer
 

Merci. Je vais m'orienter vers Sha1 s'il est plus sécuritaire alors.

n°1896412
NewsletTux
<Insérez ici votre vie />
Posté le 17-06-2009 à 20:10:08  profilanswer
 

t'as intérêt aussi à verrouiller le dossier qui contient tes docs, de façon à ce qu'un gars "qui connait" ne puisse pas filer l'URL à un autre.


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1896573
cilies1
Posté le 18-06-2009 à 12:24:17  profilanswer
 

Bonjour encore une question.
Dans le cahier des charge il est mentionné un certificat SSL est préférable. Pouvez-vous me renseigner dessus ?
Comment je verrouille le dossier ?
Merci.

n°1896577
NewsletTux
<Insérez ici votre vie />
Posté le 18-06-2009 à 13:07:24  profilanswer
 

pour verrouiller le dossier :
 
- ne faire aucun lien direct vers le fichier, mais un lien du type download.php?file=15 (un id, une référence, peu importe)
 
- si tu veux faire un peu plus, tu peux renommer le dossier à intervalles réguliers. c'est ce que j'ai fait dans un truc que j'ai dév une fois.
 
pour SSL : il faut acheter un certificat et l'importer, selon ton environnement, c'est un peu différent (IIS pour serveur Windows). ton hébergeur doit avoir de la doc là dessus, en tous cas OVH en a.
 
Et ça te permet d'avoir une adresse https://


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1896594
jagstang
Pa Capona ಠ_ಠ
Posté le 18-06-2009 à 13:55:26  profilanswer
 

pour ma part utiliser sha1 au lieu de MD5 améliore de 1% ta sécurité... Il faut déjà qu'une personne sniffe le réseau, puis utilise des rainbows tables pour découvrir le mot de passe. Il faut donc un accès physique. Tu ferais mieux de faire auditer ton code pour éviter les failles d'includes / injection SQL.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
mood
Publicité
Posté le 18-06-2009 à 13:55:26  profilanswer
 

n°1896619
cilies1
Posté le 18-06-2009 à 15:08:20  profilanswer
 

Merci. Pour le certificat il faut voir avec l'hébergeur alors.
Sinon j'ai un article pour ce genre de faille de séucrité (injection et autre).

n°1896677
Profil sup​primé
Posté le 18-06-2009 à 17:08:14  answer
 

jagstang a écrit :

pour ma part utiliser sha1 au lieu de MD5 améliore de 1% ta sécurité... Il faut déjà qu'une personne sniffe le réseau, puis utilise des rainbows tables pour découvrir le mot de passe. Il faut donc un accès physique. Tu ferais mieux de faire auditer ton code pour éviter les failles d'includes / injection SQL.


j'ai essayé de trouver la correspondance avec une liste de mots de passes et il y avait pas mal de résultats ! Donc mieux vaut utiliser sha1 amha.

Message cité 1 fois
Message édité par Profil supprimé le 18-06-2009 à 17:08:23
n°1896875
jagstang
Pa Capona ಠ_ಠ
Posté le 19-06-2009 à 11:07:22  profilanswer
 

certes, mais cela est dû à la popularité de md5 et non à sa faiblesse point de vue technique.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1896885
pataluc
Posté le 19-06-2009 à 11:36:33  profilanswer
 

 

j'ai pas compris ce que tu voulais dire... tu as cherché a partir d'une empreinte md5 à trouver un message correspondant?

 
jagstang a écrit :

certes, mais cela est dû à la popularité de md5 et non à sa faiblesse point de vue technique.

 

ben disons qu'avec les puissance de calcul d'auj, avec ma machine perso et un soft trouvé sur le net qui exploite en parallèle les 4 core de mon cpu + mon gpu (pas des plus puissants, mais Q6600 + GForce 9500 qd même), ca teste près de 200 millions de possibilités par seconde. c'est à dire qu'il faut de l'ordre d'une journée pour casser un pwd de longueur inférieur ou égale à 8 caractères...

 

mais je suis pas sur que le sha-1 soit bcp plus armé contre ca... il faut sans doute soit passé au sha-256 ou sha-512, ou alors comme certains l'ont dit, faire une empreinte md5 du pwd, puis une empreinte sha-1 de l'empreinte. ou même une double empreinte md5 : pour trouver la première, il faut déja passer tous les messages de taille 32 (3.44*10^38 possibilités, même à 1milliard d'empreintes testées par secondes, ca fait de l'ordre de 10^21 siècles... on en est pas la. ^^)

Message cité 1 fois
Message édité par pataluc le 19-06-2009 à 11:37:02
n°1896893
jagstang
Pa Capona ಠ_ಠ
Posté le 19-06-2009 à 11:46:37  profilanswer
 

non il a utilisé un site qui recences les tuples mot / empreintes. d'où ma remarque.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1896895
deuspi
Posté le 19-06-2009 à 11:47:44  profilanswer
 

pataluc a écrit :


 
j'ai pas compris ce que tu voulais dire... tu as cherché a partir d'une empreinte md5 à trouver un message correspondant?
 


 

pataluc a écrit :


 
ben disons qu'avec les puissance de calcul d'auj, avec ma machine perso et un soft trouvé sur le net qui exploite en parallèle les 4 core de mon cpu + mon gpu (pas des plus puissants, mais Q6600 + GForce 9500 qd même), ca teste près de 200 millions de possibilités par seconde. c'est à dire qu'il faut de l'ordre d'une journée pour casser un pwd de longueur inférieur ou égale à 8 caractères...
 
mais je suis pas sur que le sha-1 soit bcp plus armé contre ca... il faut sans doute soit passé au sha-256 ou sha-512, ou alors comme certains l'ont dit, faire une empreinte md5 du pwd, puis une empreinte sha-1 de l'empreinte. ou même une double empreinte md5 : pour trouver la première, il faut déja passer tous les messages de taille 32 (3.44*10^38 possibilités, même à 1milliard d'empreintes testées par secondes, ca fait de l'ordre de 10^21 siècles... on en est pas la. ^^)


Salut,
Tu parles de brute-forcer un mot de passe à partir de son "hash" (oui oui c'est pas du chiffrement je sais ^^)
Effectivement ça ne soit pas changer grand chose en brute-force
Mais il existe des sites qui référencent des listes de mots de passes courants avec leur hachage correspondant en md5, tu n'as qu'à entrer le hachage et il te sort le mot de passe s'il le connaît.
Je pense que c'est beaucoup plus dur à trouver pour le sha1.
C'est uniquement à ce niveau, à mon sens, que le sha1 a un intérêt par rapport au md5 (j'ai pas exploré les détails techniques de l'un ou l'autre des algos..)
 
Mais bon pour revenir au sujet, en principe les hachages des mots de passe ne sont pas accessibles aux utilisateurs, donc théoriquement aucune chance de les récupérer même s'ils étaient stockés en clair. Histoire d'être un peu sérieux, on met un chiffrage, mais la complexité de l'algo de chiffrage ne sera pas un énorme gage de sécurité.
 
Comme le disait jagstang les efforts pour la sécurité du site doivent plutôt être portés sur les failles type injection, cross-scripting et compagnie.
 
A+

n°1896910
pataluc
Posté le 19-06-2009 à 12:09:51  profilanswer
 

ok...  
 
mais si j'en crois ce genre de page: http://www.korben.info/comment-dec [...] n-md5.html
 
les meilleurs listes de tuples en contiennent plusieurs dizaines de millions. c'est à dire rien du tout en comparaison du nb de messages possibles sur 8 caractères:  
 
26 minuscules + 26 maj + 10 chiffre + ~30 caractères spéciaux = environ 100 caractères possibles, sur 8 caractères, ca fait 10^16. donc les rainbow tables en sont encore loin. en supposant bien sur que les gens utilisent des pwd suffisamment longs...

n°1897183
Pascal le ​nain
Posté le 20-06-2009 à 03:57:26  profilanswer
 

cilies1 => En plus du hachage du mot de passe, pense à prévenir les injections SQL. La meilleure solution sont les prepared statement.
 
http://www.siteduzero.com/tutoriel [...] paree.html


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Meilleure solution sécurité pour site web PHP/Mysql

 

Sujets relatifs
[PHP/SQL] Vérifier si la valeure saisie existe dans la baseSESSIONS PHP
[Résolu] MySQL : LEFT JOIN et GROUP BY - récupérer la dernière valeurDécaler des valeurs de champs MYSQL *RESOLU*
[Resolu]Problème de compilation API MYSQL[PHP] organisation d'un switch-case en fonction de droits
[Oracle & PHP] boucle if dans while : problème[PHP] Intégration de texte avec sauts de ligne dans une image
PHP ou Javascript ? pour cette gallerie photosComportement de Sqlite, Postgresql, et MySQL en cas de crash du client
Plus de sujets relatifs à : Meilleure solution sécurité pour site web PHP/Mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR