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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] ma technique d'identification est elle assez sécurisée ?

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[PHP] ma technique d'identification est elle assez sécurisée ?

n°160311
z0rglub
Posté le 16-06-2002 à 19:17:57  profilanswer
 

salut,
je fais appel à vous pour que vous donniez votre avis.
Je programme une application de galerie d'images en ligne (PhpWebGallery pour ceux qui connaissent :D ) et je revois mon système d'identification. Avant, je fonctionnais par cookie, mais ce n'était pas bien pour plusieurs raisons... donc j'ai voulu abandonner l'utilisation de cookie.
Voici comme je fonctionne maintenant :
1. l'utilisateur se entre son login + mot de passe, je teste si le couple est le même que celui de la base de données (le mot de passe est stocké en md5 dans la base)
2. si le mot de passe est bon, je créé un identifiant de session composé de 4 caractères (paramétrable) avec 62 possibilités pour chaque caractère, donc 62 puissance 4 possibilitées.
3. j'écris dans la table des sessions l'identifiant de session avec l'id de l'utilisateur, la date d'expiration (par défaut à 30 minutes) et l'adresse IP de la personne qui créé la session !
4. sur chaque page je teste si l'identifiant de session est existant, non expiré, correspondant bien à la bonne IP
 
Vous en pensez koi ? C'est une passoire comme système ?


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
mood
Publicité
Posté le 16-06-2002 à 19:17:57  profilanswer
 

n°160318
siewn
Posté le 16-06-2002 à 19:29:17  profilanswer
 

autant stocker dans un cookie le pseudo et le mdp (en md5 éventuellement) et vérifier sur chaque page. là c sûr à 100%
 
ton système peut poser pb en cas de proxy où plusieurs utilisateurs seront derrière la même adresse ip donc en récupérant l'identifiant de session de qqun, on peut se faire passer pour lui.

n°160322
z0rglub
Posté le 16-06-2002 à 19:33:52  profilanswer
 

siewn a écrit a écrit :

autant stocker dans un cookie le pseudo et le mdp (en md5 éventuellement) et vérifier sur chaque page. là c sûr à 100%
 
ton système peut poser pb en cas de proxy où plusieurs utilisateurs seront derrière la même adresse ip donc en récupérant l'identifiant de session de qqun, on peut se faire passer pour lui.  




je ne veux plus passer par cookie, refus absolu !
 
Oui, tu as raison pour ce que tu dis, s'ils sont plusieurs derrière le même proxy et que le second trouve l'id de session assez rapidement, il peut se logguer... en admin si le mec initial est un admin, mais bon, ça reste peu probable, non ?


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160328
Ace17
Posté le 16-06-2002 à 19:42:30  profilanswer
 

C'est vrai que j'ai été confronté a ce probleme moi aussi, mais c'est peu probable...je suis resté a un systeme par les IPs.
peut etre pourrait on stocker autre chose avec l'ip qui puisse distinguer différents users derriere un proxy.
Mais je n'aime pas les cookies car souvent les gens les désactivent

n°160331
z0rglub
Posté le 16-06-2002 à 19:44:39  profilanswer
 

Ace17 a écrit a écrit :

Mais je n'aime pas les cookies car souvent les gens les désactivent



moi c'est encore plus que ça... les gens peuvent installer PhpWebGallery sur n'importe kel serveur web, parfois derrière un firewall... et là, t'oublies complètement les cookies... c'est trop lourd les cookies à gérer pour PhpWebGallery.
 
Pour siewn : avant je stockait login+md5(password) dans le cookie.


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160346
Tentacle
Posté le 16-06-2002 à 20:04:19  profilanswer
 

Pour l'identifiant de session, crée en plutôt un de 32 octets... genre tu fais un md5 sur le retour de la fonction microtime (temps en micro seconde).
 
Et puis pour le coup du mdp en md5 dans un cookie, ce n'est pas plus ou moins sûr qu'un identifiant de session. D'ailleurs mettre le mot de passe en md5 dans le cookie implique que si quelqu'un le récupère, il aura tout son temps pour le cracker dans son coin... un id de session ayant une durée de vie limitée, ça réduit le risque.

n°160401
z0rglub
Posté le 16-06-2002 à 21:13:01  profilanswer
 

Tentacle a écrit a écrit :

Pour l'identifiant de session, crée en plutôt un de 32 octets... genre tu fais un md5 sur le retour de la fonction microtime (temps en micro seconde).



ma fonction de création de l'identifiant de session est bien meilleure qu'un simple md5 sur microtime. Pourkoi ?
1. parce que microtime ne renvoie des chaînes ne contenant des caractères à 15 possibilités (contre 62 ! pour la mienne).
2. il suffit au cracker de savoir à quel moment la session a été créée pour trouver l'id de session, ma méthode est basée sur un md5 de microtime + motclef inconnu puis un random pour chaque caractère :

Code :
  1. function generate_key()
  2. {
  3.  global $conf;
  4.  $md5 = md5( substr( microtime(), 2, 6 ).$conf['session_keyword'] );
  5.  $init = "";
  6.  for ( $i = 0; $i < strlen( $md5 ); $i++ )
  7.  {
  8.   if ( is_numeric( $md5[$i] ) )
  9.   {
  10.    $init.= "$md5[$i]";
  11.   }
  12.  }
  13.  $init = substr( $init, 0, 8 );
  14.  mt_srand( $init );
  15.  $key = "";
  16.  for ( $i = 0; $i < $conf['session_id_size']; $i++ )
  17.  {
  18.   $c = mt_rand( 0, 2 );
  19.   if ( $c == 0 )
  20.   {
  21.    $key .= chr( mt_rand( 65, 90 ) );
  22.   }
  23.   elseif ( $c == 1 )
  24.   {
  25.    $key .= chr( mt_rand( 97, 122 ) );
  26.   }
  27.   else
  28.   {
  29.    $key .= mt_rand( 0, 9 );
  30.   }
  31.  }
  32.  return $key;
  33. }


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160402
siewn
Posté le 16-06-2002 à 21:14:46  profilanswer
 

mais y'a un truc que je comprends pas.
pkoi t'utilises pas simplement le sessid crée automatiquement par php ?

n°160403
z0rglub
Posté le 16-06-2002 à 21:16:25  profilanswer
 

je n'utilise pas le systeme standard pour cause d'incompatibilité selon les hébergeurs... mais le système standard utilise des id de session de 32 caractères je crois, contre seulement 4 par défaut pour moi !


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160405
siewn
Posté le 16-06-2002 à 21:18:33  profilanswer
 

tu crée toi même les sessions ?
pas trop la merde d'ajouter le sessid tout le temps sur chaque lien ?

mood
Publicité
Posté le 16-06-2002 à 21:18:33  profilanswer
 

n°160408
z0rglub
Posté le 16-06-2002 à 21:20:05  profilanswer
 

Code :
  1. function add_session_id_to_url( $url )
  2. {
  3.  global $page;
  4.  if ( ereg( "\?" ,substr ( strrchr($url,"/" ), 1, strlen ( $url ) ) ) )
  5.  {
  6.   //echo $page['session_id']."<br />";
  7.   return $url."&id=".$page['session_id'];
  8.  }
  9.  else
  10.  {
  11.   return $url."?id=".$page['session_id'];
  12.  }
  13. }


add_session_id_to_url( "./diapo.php?cat=".$sub_row['id']."&expand=".$HTTP_GET_VARS['expand'] )


Message édité par z0rglub le 16-06-2002 à 21:21:10

---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°160456
Tentacle
Posté le 17-06-2002 à 00:08:28  profilanswer
 

Mais le fait de ne sortir qu'un id de 4 caractères reste toujours faible... 65^4 reste encore 'faible' mais bon si c'est configurable :)

n°160467
z0rglub
Posté le 17-06-2002 à 07:43:09  profilanswer
 

Tentacle a écrit a écrit :

Mais le fait de ne sortir qu'un id de 4 caractères reste toujours faible... 65^4 reste encore 'faible' mais bon si c'est configurable :)  




oui, je dirais que c vrai pour une application classique, mais pour une appli web, où il faut faire des requêtes sur le serveur, ça fait

4 caractères :        14 776 336 possibilités
5 caractères :       916 132 832 possibilités
6 caractères :    75 418 890 625 possibilités
7 caractères : 3 521 614 606 208 possibilités


 
à trouver en 1800 secondes donc 8209 clefs par secondes pour 4 caracctères (aucun serveur ne peut répondre aussi vite !)
mais c configurable, on peut s'amuser à mettre 10 minutes et une id sur 10 carctères


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161059
z0rglub
Posté le 17-06-2002 à 16:33:49  profilanswer
 

:bounce: d'autres avis ?


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161285
Tentacle
Posté le 17-06-2002 à 19:34:38  profilanswer
 

z0rglub a écrit a écrit :

:bounce: d'autres avis ?  




 
non mais une question... l'id est envoyé par méthode POST ou GET ?  
T'as raison de dire que 4 caractères, ça fait un nombre de possibilités assez grand, mais il reste toujours le problème d'une personne qui regarde ce que fait une autre (ça tombe dans la paranoia... mais bon :) ) et si l'id est transmis en GET, il est alors assez facile de mémoriser 4 caractères.
(je cherche la bêbête je sais, mais c'est bien pour ça que tu as posté ce message ;p

n°161290
z0rglub
Posté le 17-06-2002 à 20:03:04  profilanswer
 

ok, tu as raison de chercher la petite bête, c'est le but du topic. Alors en effet, 4 caractères ou 50, si le "pirate" trouve l'id de session, qui passe en clair dans l'URL, alors, il peut accéder à la session de l'autre, à 2 condition :
1. être rapide, car la session a une durée limitée
2. avoir la même IP
 
Pour le 2eme point, en fait je vérifie juste $REMOTE_ADDR, est-ce que c'est mauvais, est ce que le "pirate" peut simuler $REMOTE_ADDR ? (à condition qu'il connaisse l'IP de la personne qui possède la session en question)


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161292
Tentacle
Posté le 17-06-2002 à 20:06:58  profilanswer
 

z0rglub a écrit a écrit :

ok, tu as raison de chercher la petite bête, c'est le but du topic. Alors en effet, 4 caractères ou 50, si le "pirate" trouve l'id de session, qui passe en clair dans l'URL, alors, il peut accéder à la session de l'autre, à 2 condition :
1. être rapide, car la session a une durée limitée
2. avoir la même IP
 
Pour le 2eme point, en fait je vérifie juste $REMOTE_ADDR, est-ce que c'est mauvais, est ce que le "pirate" peut simuler $REMOTE_ADDR ? (à condition qu'il connaisse l'IP de la personne qui possède la session en question)  




 
Je ne te parle pas tellement d'un pirate... mais genre un collègue de bureau mal intentionné... 4 caractères, c'est hyper facile à retenir (50 c'est tout de même moins facile) et surtout il aura la même IP. voilà :)  
(de toute façon on peut toujours trouver une faille... aucun système n'est sûr ... )
 
Pour le coup de simuler une IP, oui c'est possible mais il ne récupèrera pas le retour de la requête.

n°161295
z0rglub
Posté le 17-06-2002 à 20:11:38  profilanswer
 

tu me diras, le collègue "pirate" peut toujours se mettre sur le même poste et réutiliser une adresse via l'historique dans le navigateur... par contre, le collègue qui regarde par dessus l'épaule pour voir l'id de session, j'y avais pas pensé, et c vrai que du coup, 4 caractères, c'est pas énorme ! (heureusement que c'est paramétrable !


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161296
Tentacle
Posté le 17-06-2002 à 20:15:05  profilanswer
 

z0rglub a écrit a écrit :

tu me diras, le collègue "pirate" peut toujours se mettre sur le même poste et réutiliser une adresse via l'historique dans le navigateur... par contre, le collègue qui regarde par dessus l'épaule pour voir l'id de session, j'y avais pas pensé, et c vrai que du coup, 4 caractères, c'est pas énorme ! (heureusement que c'est paramétrable !  




 
un jour je m'étais imaginé regénérer l'id à chaque requête mais il ne faut pas que le client visite ton site avec plusieurs fenêtre sinon  :cry:  
 
Pour le coup de réutiliser une adresse via l'historique... si l'utilisateur pense bien à se déloguer de ton site (tu effaces l'id quoi), il n'y a pas de problème.

n°161301
z0rglub
Posté le 17-06-2002 à 20:32:34  profilanswer
 

en fait les utilisateurs ne se deloggues pas... l'id est périmé au bout d'un certain temps (30 minutes par défaut)


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161308
Tentacle
Posté le 17-06-2002 à 20:44:50  profilanswer
 

z0rglub a écrit a écrit :

en fait les utilisateurs ne se deloggues pas... l'id est périmé au bout d'un certain temps (30 minutes par défaut)  




 
bah tu pourrais leur proposer une bouton pour se déloguer, ça évitera que quelqu'un utilise l'historique.

n°161336
z0rglub
Posté le 17-06-2002 à 21:46:35  profilanswer
 

y'en a 1, mais je peux pas les forcer à l'utiliser...


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161344
Tentacle
Posté le 17-06-2002 à 22:02:09  profilanswer
 

z0rglub a écrit a écrit :

y'en a 1, mais je peux pas les forcer à l'utiliser...  




non c'est vrai :)

n°161374
Masure
Posté le 17-06-2002 à 22:57:34  profilanswer
 

Bonjour je vais devoir faire un site avec acces utilisateur par mdp. Je suis tombé sur votre topic et ca me concerne pas mal. J'avoue que je me suis pas encore posé le problème et la ya beaucoup d'information d'un coup.
 
Qqun pourrait me faire un resumé des problemes posés par les sessions et qques systemes pour gerer tout ca ?
 
Comme je disais j'ai pas trop réfléchi, mais pkoi pa un cookie qui s'efface a la cloture de la fenetre comme ca on se traine pas un id dans les liens et plus de trace une fois fini ?! Dites moi ce qui pose probleme, j'avoue que je ne vois pas toutes les subtilités, il doit y en avoir

n°161381
z0rglub
Posté le 17-06-2002 à 23:03:51  profilanswer
 

les cookies, c'est chiant parce que :
- tous les surfeurs ne les acceptent pas, alors pour les identifications c moyen !
- tous les serveurs ne les font pas marcher parfaitement, par exemple si le serveur est derrière un firewall...
- de plus, on ne peut pas faire ce que tu suggère, cad supprimer le cookie à la sortie du surfeur...
 
les sessions par identifiants dans l'URL permettent de contrer les pb posés par les cookies, mais dans le même temps, la gestion est un peu plus chiante... et on voit l'identifiant de session dans l'URL.


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161395
Masure
Posté le 17-06-2002 à 23:16:14  profilanswer
 

Pour ce qui est d'effacer un cookie lorsque le navigateur se ferme, j'ai trouvé ça sur un site :
 

Code :
  1. <?php
  2. // Envoi d'un cookie qui disparaitra après la fermeture du navigateur
  3. SetCookie("CcmUserSessionCookie","$login:$pass" );
  4. ?>


 
Sinon pour les methodes de transmission dans l'url, c'est quoi les problemes ? En fait quand l'utilisateur se loggue, il a un id qui est composé a partir de son pseudo et de son pass, mais il suffit de copier cet id (a partir de l'url) pour pouvoir utilisier son compte ou alors il change a chaque session ?


Message édité par Masure le 17-06-2002 à 23:16:34
n°161397
z0rglub
Posté le 17-06-2002 à 23:18:34  profilanswer
 

il est valable un temps assez court de préférence, il faut que l'utilisateur s'identifie pour en obtenir un nouveau


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161402
Masure
Posté le 17-06-2002 à 23:23:09  profilanswer
 

question stupide : mais si le gars reste en ligne pdt 30mn et que son id expire au bout de 20mn, le gars doit se re-id alors qu il surfait peinard ?

n°161404
z0rglub
Posté le 17-06-2002 à 23:24:56  profilanswer
 

réponse : oui


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161405
Masure
Posté le 17-06-2002 à 23:27:41  profilanswer
 

mais c trop trop nul !
 
comment ils font les sites "pro" pour etre bien securises et faire beneficier le surfer d'une belle session ? il doit bien y avoir une solution qd meme !

n°161408
z0rglub
Posté le 17-06-2002 à 23:30:44  profilanswer
 

et bien, ils utilisent des cookies... c'est une très bonne méthode qd tu es sûr que ton serveur les fera marcher, mais mon appli doit pouvoir s'installer sur n'importe quel serveur, donc ça pose parfois pb !


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161409
Masure
Posté le 17-06-2002 à 23:31:50  profilanswer
 

oki, sinon pour mon cookie qui est supprimé quand le navigateur est fermé ca marche ? ils doivent bien faire comme ca, paske tant que t sur le site c bon, et si tu fermes le nav, ben tu dois te reloger

n°161412
z0rglub
Posté le 17-06-2002 à 23:34:27  profilanswer
 

j'avoue ne pas savoir comment le navigateur peut informer le serveur qu'il s'est fermé...


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161415
Masure
Posté le 17-06-2002 à 23:36:03  profilanswer
 

je viens de tester chez moi avec un truc vraiment bete :
 
j'ai crée un cookieavec le bout de code que je t donné, et j ai affiché sa valeur.
 
ensuite g fermé la fenetre, g lu le cookie, il  n'existait plus. Donc ca marche. Tu me diras ct obligé tous les sites fonctionnent sur la fermeture du nav.

n°161417
z0rglub
Posté le 17-06-2002 à 23:38:13  profilanswer
 

ben je savais pas, pour moi ct juste une date d'expiration


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161418
Masure
Posté le 17-06-2002 à 23:39:14  profilanswer
 

sinon je suis allé sur ton site, t'utilise les cookies a l heure actuelle et tu veux faire un systeme par url c bien ca ?

n°161420
ratibus
Posté le 17-06-2002 à 23:39:46  profilanswer
 

Masure a écrit a écrit :

oki, sinon pour mon cookie qui est supprimé quand le navigateur est fermé ca marche ? ils doivent bien faire comme ca, paske tant que t sur le site c bon, et si tu fermes le nav, ben tu dois te reloger  




 
avec la syntaxe que tu as donnée je confirme que le cookie est effacé une fois la fenetre fermée

n°161422
z0rglub
Posté le 17-06-2002 à 23:42:40  profilanswer
 

Masure a écrit a écrit :

sinon je suis allé sur ton site, t'utilise les cookies a l heure actuelle et tu veux faire un systeme par url c bien ca ?  




oui, c ça, suite à des reports de pb par certains utilisateurs, j'ai décidé de passer à une gestion des identifications sans ccokie


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°161423
Masure
Posté le 17-06-2002 à 23:44:04  profilanswer
 

et ta dja vu un site qui tournait que par id dans l url ? maniere de faire comme eux, ils doivent bien avoir un systeme qui evite la peremption de l'id a temps fixe !
 
attend je crois que g un site en tete la je v voir il me semble qu ils mettent tout dans l url

n°161424
z0rglub
Posté le 17-06-2002 à 23:46:48  profilanswer
 

si toute les infos sont dans l'URL, il vaut mieux que la session ne dure pas trop longtemps... sinon, on pourrait voir ton identifiant et se faire passer pour toi


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  [PHP] ma technique d'identification est elle assez sécurisée ?

 

Sujets relatifs
[PHP] mon top 10 ne marche pas[PHP] Recherche codeur PHP pour site de jeux videos .
[PHP] QuestionProbleme MySQL & PHP
[PHP] Comment faire pour afficher sur plusieurs pages[PHP] - Upload de fichier : recuperation du chemin complet sur mon HD
[PHP] transformation des .doc en PDF avec PDFLib ...[PHP] afficher un 'nouveau' pour les derniers enregistrements...
Decouper une chaine de char en Php[PHP] generer un log sur un repertoire protege en htaccess.
Plus de sujets relatifs à : [PHP] ma technique d'identification est elle assez sécurisée ?


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