Piratage : sécurisation variables de sessions - Divers - Programmation
Marsh Posté le 28-07-2005 à 16:57:19
Tiens, on devrait transformer ce topic en "[PHP] Sécurisation de sessions", en essayant de trouver un vrai truc qui repose pas sur SSL...
Marsh Posté le 28-07-2005 à 17:08:33
Les variables de session, elles sont stockées sur le serveur, non ? L'utilisateur il n'a que l'ID de la session.
Marsh Posté le 28-07-2005 à 17:10:05
Et c'est cet ID qu'on peut spoofer, suffit de récupérer le cookie...
Marsh Posté le 28-07-2005 à 17:32:08
oui mais grâce à cette id on peut faire seulement de la lecture non
Marsh Posté le 28-07-2005 à 18:39:55
On peut se faire passer pour l'autre, donc si le mec est admin du site et a tout les pouvoir via une interface d'administration, on peut tout faire...
Marsh Posté le 28-07-2005 à 18:40:57
Si quelqu'un connait un moyen d'empêcher/contrer ça, ça m'intéresse...
Marsh Posté le 28-07-2005 à 18:43:09
Justement, ce topic pourrait servir à ça. L'objectif est de trouver un truc, sans passer par SSL...
Marsh Posté le 28-07-2005 à 18:44:06
FlorentG a écrit : Justement, ce topic pourrait servir à ça. L'objectif est de trouver un truc, sans passer par SSL... |
amha c'est peine perdue...
Marsh Posté le 28-07-2005 à 18:45:38
Oui, y'a aucun moyen à 100%.
Bon déjà, en situation initiale, récupérer un SID nécessite soit un sniff du résal, soit une récupération des cookies. C'est déjà pas si simple. Après ce qu'il faut rajouter, c'est un mécanisme supplémentaire pour vérifier qu'un SID appartient à une seule machine, et à personne d'autres...
Marsh Posté le 28-07-2005 à 18:50:46
un autre moyen serait d'autoriser l'accès à une seule connexion simultanée / session non ?
Marsh Posté le 28-07-2005 à 20:37:09
FlorentG a écrit : une récupération des cookies. |
les cookies de session sont temporaires => ils ne sont pas stockés sur le disque => le seul moyen de le récupérer est de sniffer le réseau
FlorentG a écrit : C'est déjà pas si simple. Après ce qu'il faut rajouter, c'est un mécanisme supplémentaire pour vérifier qu'un SID appartient à une seule machine |
y a moyen de faire ca, ouais : faire que le cookie ne soit alable que pour une IP. c'est une protection supplémentaire.
y a peut être aussi moyen de changer l'id de session à chaque requête de façon à ce qu'il ne soit valide qu'une seule fois. Par contre là il ne faut pas qu'il y ait un problème de réseau ou que l'utilisateur clique sur STOP (bref, que le PC loupe une réponse) sinon il se retrouve déconnecté
(mais y a surement moyen de se protéger un peu de ça en vérifiant que l'envoi des données s'est effectué jusqu'au bout)
Marsh Posté le 28-07-2005 à 20:41:24
Avec un ami on a créé une classe de securization de session, encore 2 -3 jours de paufinement et je la proposerai ...
Marsh Posté le 28-07-2005 à 21:06:08
esox_ch a écrit : Avec un ami on a créé une classe de securization de session, encore 2 -3 jours de paufinement et je la proposerai ... |
tu peux déjà expliquer les principes que vous avez mis en oeuvre ?
Marsh Posté le 28-07-2005 à 21:42:52
Bein c'est rien de particulierement sorcier ... On a pris pas mal de doc sur les session (A commancer par celle sur php.net), et on a essayer d'appliquer ça en restant un minimum large (genre pas de filtrages bizard sur l'IP vu les emmerdes que ça peut creer avec des proxy & co) meme si certains choix peuvent etre un peu restrictifs (le SID est passé uniquement par cookie) ...
Normalement mardi la classe et la doc sera prete et je vous la balance ...
Marsh Posté le 28-07-2005 à 21:51:29
donc concretement vous avez fait quoi par rapport à une implemntation basique d'une session ?
c'est quoi le problème avec les sessions en PHP ?
(j'ai jamais entendu parler de problématique de ce genre avec les servlets)
Marsh Posté le 28-07-2005 à 23:45:29
benou a écrit : les cookies de session sont temporaires => ils ne sont pas stockés sur le disque => le seul moyen de le récupérer est de sniffer le réseau |
C'est bien ce que je pensais... Du coup comme tu dis, à part sniffer le réseau. Mais question sécurité, est-ce vraiment grave ? J'veux dire tous les 3 jours j'upload des mises à jour de site sur ftp, et je sais très bien qu'en snifant on dégote login + pass... Et ça me dérange pas plus, alors pour un SID pour un site pas trop connu et dont tout le monde s'en fout...
Marsh Posté le 28-07-2005 à 23:55:12
ReplyMarsh Posté le 29-07-2005 à 09:17:30
benou a écrit : donc concretement vous avez fait quoi par rapport à une implemntation basique d'une session ? |
Donc on a tout de meme utilisé le support des sessions en estimant qu'il serait surment mieux qu'un fait a la main par nous, parcontre notre classe est ... comment dire... une compilation des regles de bon usage des sessions ...
Marsh Posté le 29-07-2005 à 10:02:11
esox_ch a écrit : une compilation des regles de bon usage des sessions ... |
c'est à dire ?
Marsh Posté le 28-07-2005 à 16:53:49
Je tente de sécuriser un maximum un portail web.
dans un bout de code, afin de regarder si l'utilisateur est bien logué le portail regarde si une variable de session est null ou pas.
j'aimerais donc savoir si le client a la possibilité de créer des variables de sessions (par des techniques de piratages) afin de faire en sorte d'être logué avec une fausse var de session.
en espérant avoir été clair
Message édité par tomtom41 le 29-07-2005 à 10:06:01