Cherche une alternative aux sessions

eru
Eléphanteau du PHP | 39 Messages

08 juin 2006, 15:24

Bonjour,

comme le nom du sujet l'indique je chercherais une alternative aux variables de session dans le cas suivant :

Une personne se logue, si c'est bon je crée une variable de session qui doit être transmise de page en page pour l'authoriser a naviguer.

Sur mon pc pas de pb ca marche, mais quelques personnes se retrouve dans l'incapacité de se connecté car les cookies sont probablement désactivé sur leur navigateur, donc il doivent se reloguer a chaque changement de page. Plutot contraignant.... :D

Je cherche donc un systeme plus... universel pour faire passer ces variables, j'ai essayé avec un formulaire et des hidden mais c'est impossible puisqu'il faudrait que les visiteurs valident a chaque fois ce formulaire.

Auriez vous une idée SVP.

ldaniele
Invité n'ayant pas de compte PHPfrance

08 juin 2006, 15:52

bonjour,
il faut que tu utilise les sessions .
au revoir .

Eléphant du PHP | 95 Messages

08 juin 2006, 15:53

tu peux passer les variables par l'URL, mais les données seront visibles par tout le monde, dans la barre d'adresse. pour plus d'info, tu peux regarder http://www.laltruiste.com/document.php? ... iable.html
Modifié en dernier par Ben-J le 08 juin 2006, 16:08, modifié 1 fois.

Mammouth du PHP | 601 Messages

08 juin 2006, 15:54

mdr, Idaniel ;-))))
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

eru
Eléphanteau du PHP | 39 Messages

08 juin 2006, 16:11

lol Idaniel, ca ne tiendrait qu'a moi, je n'utiliserais que des session, c'est fait pour ca lol! :D

Ben-J :
Passer les variables par l'adresse c'est aussi les rendre visibles a tous! donc c pas glop...

Mais sur le site où tu me renvoies, (et là, mes gros manques de connaissances deviennent flagrants...) ils disent que les cookies sont utilisé par défaut lors d'un session, mais que l'on peut les désactiver avec
session.use_cookies=0;
qu'il faut modifier dans php.ini (je ne sais pas encore où se trouve se fichier sur le serveur mais je vais trouver :wink: , bien que je doute que multimania nous laisse l'accès a ce fichier...)

Si l'on désactive cette fonction , doit on modifier sa facon de gerer les variables, c'est a dire, peut on toujours définir les variables avec $_SESSION['var'] ?

Eléphant du PHP | 95 Messages

08 juin 2006, 16:14

il faut aussi que tu active url_rewriter.tags dans ton php.ini. pour multimania j'en sais rien du tout :oops: ^^ sinon utilise la méthode get a la place de post; 'fin regarde http://cyberzoide.developpez.com/php4/url/ si sa peut t'aider (tinquiète pas de ton ignorance, on apprend comme sa)

eru
Eléphanteau du PHP | 39 Messages

08 juin 2006, 16:38

Alors pour Multimania si ca interresse quelqu'un : le fichier php.ini ne semble pas pouvoir être modifier, c'est eux qui le gere nous n'y avons pas accès.

Utiliser la fonction $_GET, pour récupérer les variables? donc passer par l'URL et donc les rendre visibles?
Il faudrai alors pouvoir les crypter, mais alors, meme en utilisant base64_encode, il suffit a n'importe qui d'utiliser la fonction base64_decode pour connaitre ces variables non?
donc d'un point de vue sécurité, c'est plus que laborieux?

désolé pour cet acharnement :oops:

Eléphant du PHP | 95 Messages

08 juin 2006, 16:42

vi tu as raison, niveau sécurité c'est tout noaze ^^ il ne te reste plus qu'a inventer un autre moyen, et de nous le faire partager ici... ça nous interesse ! chaque méthode a ses avantages et ses inconvénients, normal, ya pa de solutions miracles ^^

eru
Eléphanteau du PHP | 39 Messages

08 juin 2006, 16:50

lol, merci pour tout Ben-J, c'est promis, si je trouve un systeme ultra sécurisé, léger, fiable, universel, que n'importe quel pécore peut lire sur n'importe quel navigateur et qui tiens en moins de 4 lignes de code je viens tout de suite le présenter lol :D

En tous cas, merci pour tout les gens, c'est sympa d'avoir pris le temps!

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

08 juin 2006, 17:01

Regarde un peu la méthode d'authentification NTLM
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 juin 2006, 17:17

Utiliser la fonction $_GET, pour récupérer les variables? donc passer par l'URL et donc les rendre visibles?
Il faudrai alors pouvoir les crypter, mais alors, meme en utilisant base64_encode, il suffit a n'importe qui d'utiliser la fonction base64_decode pour connaitre ces variables non?
donc d'un point de vue sécurité, c'est plus que laborieux?
Le principe de la session est de générer et d'affecter un identifiant à un utilisateur connecté pour l'identifier tant que celui-ci reste sur le site (cf. PHPSESSID).
Si au moment où ton utilisateur se connecte tu génères et lui affecte une clé unique (en fonction du jour, de l'heure, de la seconde, du temps qu'il fait et de l'age du capitaine), tu peux facilement la stocker (en base, en fichier, etc.) en lui octroyant une durée de validité. Il ne te reste plus qu'à passer ce paramètre à chacune des pages qu'il consulte (donc dans tes liens) pour le savoir authentifié.

Pas besoin de cryptage (cela dit, tu peux toujours encoder la variable dans l'url en md5, et la comparer à la chaine que tu as gardé en la cryptant à chaque comparaison), vu que l'id en question ne serait vallable qu'un certain temps, et que je mets au défi quiconque passant derriere moi d'apprendre une clé du genre "3e942af68bc6b834febd34abd834237d" pour aller la retaper sur son pc pendant que je suis connecté pour me piquer ma "pseudo session" :)

Sadeq >> si je ne dis pas de bétise, le NTLM permet de récupérer le login de windows (ce qui est fort pratique) mais ne fonctionne malheureusement qu'avec windows nan ?
Sinon dans le même genre, avec une authentification par htaccess, on peut savoir que l'utilisateur s'est nécessairement authentifié pour accéder à un dossier spécifique...

eru
Eléphanteau du PHP | 39 Messages

08 juin 2006, 23:15

Salut Ryle,

je comprends le principe de la session (enfin je crois), je l'utilisais au départ, le probleme était que les sessions ne tournaient pas sur certains PC (firewall, parametrage du navigateur...)

Là où je ne suis plus ton raisonnement, et je m'en excuse, c'est que je ne vois l'interet de creer une session dans ce cas. Parce que si je lui cree un identifiant unique a partir de la session et que je stock par la suite dans les URL, mais que la session ne fonctionne pas, ca ne semble pas servir a grand chose, ou alors autant cree une clé avec des caractères aléatoires et la stocker.

Enfin une derniere question (et oui encore une) en gardant un principe de base très simple de passer les variables simplement dans l'URl avec GET, existe-t-il un systeme de cryptage donnant des résultats différents pour un meme objet a crypter, afin de ne pas avoir toujours la meme valeur inscrite dans l'adresse?

J'espère etre clair, merci de votre patience (promis j'arrete avec les merci après :D )

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 juin 2006, 12:04

Là où je ne suis plus ton raisonnement, et je m'en excuse, c'est que je ne vois l'interet de creer une session dans ce cas. Parce que si je lui cree un identifiant unique a partir de la session et que je stock par la suite dans les URL, mais que la session ne fonctionne pas, ca ne semble pas servir a grand chose, ou alors autant cree une clé avec des caractères aléatoires et la stocker.
Ben c'est exactement ce que je te propose, générer une clé lors de la connexion, la stocker sur le serveur pour l'identification (puisque l'utilisateur va la trimbaler sur les pages qu'il consulte via tes liens) avec l'heure de connexion, et la rendre obsolete après 15mn d'inactivité..

Je décrivais simplement le principe de fonctionnement des sessions, justement pour pouvoir le reproduire :) Côté sécurité, tu n'as pas de clé à conservé, elle serait générée aléatoirement à chaque fois comme les sessions, vallable le temps de connexion, et aussi simple à retenir que celle que je t'ai donné ci dessus :)

"je ne vois l'interet l'intérêt de créer une session dans ce cas", ben justment, le but est de ne pas en créer pour fonctionner avec les utilisateurs refusant les cookies (ils ont tort soit dit en passant, ceux au chocolat sont délicieux ! ;)), mais de pouvoir en simuler le comportement nan ? :)