Annonce

#31 2006-07-24 23:43:02

mathiasm
Former Piwigo Team
2006-02-06
2692

Re: Le fonctionnement des sessions.

nicolas a écrit:

mathiasm a écrit:

1.1 Si la clé de la base est vide, on en génère une nouvelle
  1.2 Si la clé existe, on la réinjecte dans le cookie, sans y toucher.

Et dans le cas de la "réinitialisation de l'auto-connection pour l'ensemble des postes", le premier poste qui essaie de se reconnecter ne changera pas de clé! Et du même coup on n'aura pas réellement fait de réinitialisation sur tous les postes.

Mais c'est effectivement mieux.

Si tu fais une réinit de tous les postes, tu supprimes la clé dans la base. Le premier qui se reconnecte en génère une, les autres la réutilisent.

Hors ligne

#32 2006-07-25 00:09:23

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

nicolas a écrit:

rub a écrit:

Pour moi, il faut garder le même principe que maintenant, si on se déconnecte, on supprime l'auto-connexion du poste (le cookie donc) et on ajoute quelque part (mais dans menu identitifation) un lien "réinitialisation de l'auto-connection pour l'ensemble des postes" (un truc du genre) (ici, c'est la suppression de la clef)

Si avec le lien déconnexion, on met fin à la session et on supprime le cookie d'auto-connexion alors on ne peut pas se déconnecter en gardant la possibilité de se reconnecter automatiquement. Du coup personne ne se déconnectera.

Comme je l'ai  précisé plusieurs fois, une session a une durée de vie courte et correspond à une visite. Si on veut terminer sa visite proprement on ferme la session (ce qui évite le vol potentiel de la session) avec un lien déconnexion qui ne détruit que la session. Le mécanisme d'auto-connexion est indépendant. Pour que cela fonctionne il faudrait rester sur une page particulière, en cas de déconnexion (c'est déjà le cas si $conf['guest_access'] est à true).

Donc je propose que la déconnexion ne ferme que la session et que l'on arrive et que l'on reste sur une page (ex: index?act=logout) en mode déconnecté avec un lien pour se reconnecter.

Heu, je ne comprends pas tout.
J'ai bien compris le système de sessions, etc.

Que veux-tu lors de la deconnexion?
1 ferme la session, ok
2 Ouvrir simplement une page avec un lien re-connexion, c'est bien ca?

Et si on fait:
1 ferme la session, ok
   Si auto-connection
    2.1 Ouvrir simplement une page avec un lien re-connexion, c'est bien ca?
   Sinon
     2.2 Page d'accueil classique (gyest)


Quand ce cas, il faut trouver des termes adéquat pour éviter la confusion.
  o déconnexion avec suppresion de l'auto-connect du poste => Déconnexion ou changer d'utilisateur ou déverrouiller la connexion ou ???
  o déconnexion de la session d'identification => Fermer la session d'identification ou ???



nicolas a écrit:

Si quelqu'un a les idées claires, merci de faire un p'tit résumé.

Bonne idée mais j'ai pas la tête assez claire, la.

mathiasm a écrit:

nicolas a écrit:

mathiasm a écrit:

1.1 Si la clé de la base est vide, on en génère une nouvelle
  1.2 Si la clé existe, on la réinjecte dans le cookie, sans y toucher.

Et dans le cas de la "réinitialisation de l'auto-connection pour l'ensemble des postes", le premier poste qui essaie de se reconnecter ne changera pas de clé! Et du même coup on n'aura pas réellement fait de réinitialisation sur tous les postes.

Mais c'est effectivement mieux.

Si tu fais une réinit de tous les postes, tu supprimes la clé dans la base. Le premier qui se reconnecte en génère une, les autres la réutilisent.

Oui!


Par contre, dur ce topic car je ne me souviens jamais si connexion c'est anglais ou si c'est connection en Français ou l'inverse!

Dernière modification par rub (2006-07-25 00:12:55)

Hors ligne

#33 2006-07-25 05:27:03

rvelices
Équipe Piwigo
2005-12-29
1417

Re: Le fonctionnement des sessions.

Ouh la, beaucoup des echanges pour ce dev...

Nicolas, est-ce possible de faire la connexion automatiquement sans que j'aie besoin de cliquer sur Identification ? cad deplacer le code de identification.php vers include/user.inc.php. Comme ca j'ai le meme comportement qu'en 1.5 et comme sur tous les sites ou je coche "remember me".
Merci

Hors ligne

#34 2006-07-25 11:32:28

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

rub a écrit:

Heu, je ne comprends pas tout.
J'ai bien compris le système de sessions, etc.

c'est déjà ça. Mon explication a donc été claire ou tu connaissais déjà ?

rub a écrit:

Que veux-tu lors de la deconnexion?
1 ferme la session, ok

oui simplement ça.

rub a écrit:

2 Ouvrir simplement une page avec un lien re-connexion, c'est bien ca?

Et si on fait:
1 ferme la session, ok
   Si auto-connection
    2.1 Ouvrir simplement une page avec un lien re-connexion, c'est bien ca?
   Sinon
     2.2 Page d'accueil classique (gyest)

Le problème est que si l'utilisateur guest n'est pas autorisé à visiter la galerie ($conf['guest_access'] = false) alors en cas de déconnexion (si on a coché auto-connexion) on est automatiquement reconnecté.

rub a écrit:

Quand ce cas, il faut trouver des termes adéquat pour éviter la confusion.
  o déconnexion avec suppresion de l'auto-connect du poste => Déconnexion ou changer d'utilisateur ou déverrouiller la connexion ou ???
  o déconnexion de la session d'identification => Fermer la session d'identification ou ???

c'est bien là le problème.

rub a écrit:

Par contre, dur ce topic car je ne me souviens jamais si connexion c'est anglais ou si c'est connection en Français ou l'inverse!

connexion en français et connection en anglais.


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#35 2006-07-25 11:34:13

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

rvelices a écrit:

Nicolas, est-ce possible de faire la connexion automatiquement sans que j'aie besoin de cliquer sur Identification ? cad deplacer le code de identification.php vers include/user.inc.php. Comme ca j'ai le meme comportement qu'en 1.5 et comme sur tous les sites ou je coche "remember me".
Merci

c'est déjà le cas si l'utilisateur guest n'a pas le droit de visiter ta galerie. En fait je suis partagé entre faciliter la vie de la personne qui veut se connecter automatiquement et la personne qui veut se déconnecter (fermeture de session). Je n'ai pas trouvé de moyen propre de le faire.


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#36 2006-07-25 11:41:17

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12644

Re: Le fonctionnement des sessions.

Mon avis sur la question des sessions : ça marchait très bien pour mon besoin en 1.5. Donc moi je souhaite retrouver le fonctionnement de la 1.5 + les nouveaux avantages lié à l'utilisation des sessions au sens PHP. Que l'on ait 2 notions : l'une de session = visite et l'autre connexion = réouverture automatique de session à chaque visite, cela ne me dérange pas, il faut juste que ce soit complètement transparent pour les utilisateurs. Donc hors de question de rendre cela explicite dans l'interface avec 2 liens de suppression.

Pour rappel, en 1.2, l'utilisation de cookie pour gérer la session était une option dans le profile, et personne ne l'utilisait. Ce n'était vraiment pas l'endroit intuitif pour placer cette information.

Si on reprend le principe de la 1.5, chaque utilisateur possède plusieurs clefs de connexion. Pour un utilisateur normal, c'est utilie pour avoir une connexion au travail, l'autre à la maison par exemple. Pour un utilisateur générique comme "famille", tonton Bernard et tata Lucette auront chacun une ou plusieurs connexions. C'est pour cela que la table sessions de la 1.5 contient un id de session (qui devient un id de connexion selon les principes décrits dans ce topic) et un id d'utilisateur.

Je n'ai pas encore testé la correction de nicolas, mais avec la 1.6.0, devoir se reconnecter à chaque visite, c'est très pénible, et ma famille se plaint à chaque fois qu'ils me voient.

Dernier point : je veux bien qu'on fasse "propre" pour gérer la sécurité, mais comme l'a dit très justement rvelices, une galerie photo, ce n'est pas une banque, il faut savoir adapter le niveau de sécurité aux informations à protéger.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#37 2006-07-25 11:56:58

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

z0rglub a écrit:

Mon avis sur la question des sessions : ça marchait très bien pour mon besoin en 1.5. Donc moi je souhaite retrouver le fonctionnement de la 1.5 + les nouveaux avantages lié à l'utilisation des sessions au sens PHP. Que l'on ait 2 notions : l'une de session = visite et l'autre connexion = réouverture automatique de session à chaque visite, cela ne me dérange pas, il faut juste que ce soit complètement transparent pour les utilisateurs. Donc hors de question de rendre cela explicite dans l'interface avec 2 liens de suppression.

ce que je comprends parfaitement.
Juste une question: qu'est sensé faire le lien déconnexion ? Et quand l'utilises-tu ?

z0rglub a écrit:

Pour rappel, en 1.2, l'utilisation de cookie pour gérer la session était une option dans le profile, et personne ne l'utilisait. Ce n'était vraiment pas l'endroit intuitif pour placer cette information.

où placerais-tu la suppression de l'auto-connexion si jamais tu la places quelque part ?

z0rglub a écrit:

Si on reprend le principe de la 1.5, chaque utilisateur possède plusieurs clefs de connexion. Pour un utilisateur normal, c'est utilie pour avoir une connexion au travail, l'autre à la maison par exemple. Pour un utilisateur générique comme "famille", tonton Bernard et tata Lucette auront chacun une ou plusieurs connexions. C'est pour cela que la table sessions de la 1.5 contient un id de session (qui devient un id de connexion selon les principes décrits dans ce topic) et un id d'utilisateur.

Je ne suis pas sûr de bien comprendre ce que tu mets derrière "clefs de connexion" et je ne comprends pas pourquoi il en faudrait plusieurs.

Je réexplique la façon dont cela fonctionne.

L'identifiant de session sert à identifier une personne donnée le temps d'une visite. La même personne à la visite d'après (après déconnexion ou fermeture de son navigateur) aura un identifiant de session différent.
La clé d'auto-connexion est lié à un utilisateur (table users) et sert comme son nom l'indique à se connecter de manière automatique sans avoir à taper login et mot de passe. Elle permet de créer une nouvelle session (visite) à partir du cookie (remember_me_name).

z0rglub a écrit:

Je n'ai pas encore testé la correction de nicolas, mais avec la 1.6.0, devoir se reconnecter à chaque visite, c'est très pénible, et ma famille se plaint à chaque fois qu'ils me voient.

C'est dur d'être informaticien! :-)
Ma correction devrait réglé ce problème.

z0rglub a écrit:

Dernier point : je veux bien qu'on fasse "propre" pour gérer la sécurité, mais comme l'a dit très justement rvelices, une galerie photo, ce n'est pas une banque, il faut savoir adapter le niveau de sécurité aux informations à protéger.

On est bien d'accord mais en aucun cas on ne doit augmenter la durée de vie des sessions au delà d'une visite. On ne change pas la valeur de session.length qui doit rester à zéro. Le cookie de session est supprimé à la fermeture du navigateur.


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#38 2006-07-25 12:11:31

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12644

Re: Le fonctionnement des sessions.

Préambule, ce que j'ai appelé dans mon post précédent "clef de connexion", c'est ce que nicolas appelle "clé d'auto-connexion". En dehors de la dénomination, je pense qu'on parle de la même chose.

nicolas a écrit:

z0rglub a écrit:

Juste une question: qu'est sensé faire le lien déconnexion ? Et quand l'utilises-tu ?

Le logout est un lien explicite comme il existe actuellement. Le logout détruit à la fois la session et l'auto-connexion associée si elle existe. Cela veut donc dire qu'une session est liée à 0 ou 1 clef d'auto-connexion.

Reprenons :

* 1 utilisateur possède N clefs d'auto-connexion
* une clef d'auto-connexion est stockée dans un cookie et en base de données (dans la base, on l'associe à un user_id)
* une session est liée à un utilisateur et éventuellement à une auto-connexion (attention à la cohérence, si le user_id associé à la clef d'auto-connexion est différent du user_id associé à la session, on est mal)

nicolas a écrit:

z0rglub a écrit:

Dernier point : je veux bien qu'on fasse "propre" pour gérer la sécurité, mais comme l'a dit très justement rvelices, une galerie photo, ce n'est pas une banque, il faut savoir adapter le niveau de sécurité aux informations à protéger.

On est bien d'accord mais en aucun cas on ne doit augmenter la durée de vie des sessions au delà d'une visite. On ne change pas la valeur de session.length qui doit rester à zéro. Le cookie de session est supprimé à la fermeture du navigateur.

Ne déportons nous pas le "problème" de la sécurité avec la clef d'auto-connexion ? Si je trouve une clef d'auto-connexion d'un utilisateur, alors c'est encore mieux que de trouver sa clef de session, non ?

Pour ceux qui suivent encore, je rappelle qu'en 1.5 le "remember me" voulait simplement dire que la session durait très longtemps. Il n'y avait pas les 2 niveaux "session" et "auto-connexion". Là, on ajoute de la complexité, j'espère que cet ajout de complexité a du sens et apporte un réel avantage à PhpWebGallery. Pour le moment, je n'en vois pas, mais ça va venir, n'est-ce pas ?


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#39 2006-07-25 12:18:33

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

z0rglub a écrit:

nicolas a écrit:

z0rglub a écrit:

Dernier point : je veux bien qu'on fasse "propre" pour gérer la sécurité, mais comme l'a dit très justement rvelices, une galerie photo, ce n'est pas une banque, il faut savoir adapter le niveau de sécurité aux informations à protéger.

On est bien d'accord mais en aucun cas on ne doit augmenter la durée de vie des sessions au delà d'une visite. On ne change pas la valeur de session.length qui doit rester à zéro. Le cookie de session est supprimé à la fermeture du navigateur.

Ne déportons nous pas le "problème" de la sécurité avec la clef d'auto-connexion ? Si je trouve une clef d'auto-connexion d'un utilisateur, alors c'est encore mieux que de trouver sa clef de session, non ?

Pour ceux qui suivent encore, je rappelle qu'en 1.5 le "remember me" voulait simplement dire que la session durait très longtemps. Il n'y avait pas les 2 niveaux "session" et "auto-connexion". Là, on ajoute de la complexité, j'espère que cet ajout de complexité a du sens et apporte un réel avantage à PhpWebGallery. Pour le moment, je n'en vois pas, mais ça va venir, n'est-ce pas ?

C'est pas justement que la session ne dure justement pas longtemps?

Perso, qu'on utilise un clef ou x clefs n'importe peu tant que les 2 algos prennent tous les cas en compte (générique, au bureau, ma famille aussi qui me tombe aussi pour resaisir les mots de passe)

Hors ligne

#40 2006-07-25 12:20:50

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

nicolas a écrit:

z0rglub a écrit:

Pour rappel, en 1.2, l'utilisation de cookie pour gérer la session était une option dans le profile, et personne ne l'utilisait. Ce n'était vraiment pas l'endroit intuitif pour placer cette information.

où placerais-tu la suppression de l'auto-connexion si jamais tu la places quelque part ?

Je n'aime pas non plus mettre ca dans personnalisation.
J'avais proposé dans ce post un nouveau menu (options ou options avancées) qui permettrait de mettre des actions particulières en dehors de la personnalisation.

Hors ligne

#41 2006-07-25 12:28:59

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

nicolas a écrit:

rub a écrit:

Heu, je ne comprends pas tout.
J'ai bien compris le système de sessions, etc.

c'est déjà ça. Mon explication a donc été claire ou tu connaissais déjà ?

Explication claire, je connaissais vaguement... le nom au moins ;-)

rub a écrit:

Que veux-tu lors de la deconnexion?
1 ferme la session, ok

oui simplement ça.

rub a écrit:

2 Ouvrir simplement une page avec un lien re-connexion, c'est bien ca?

Et si on fait:
1 ferme la session, ok
   Si auto-connection
    2.1 Ouvrir simplement une page avec un lien re-connexion, c'est bien ca?
   Sinon
     2.2 Page d'accueil classique (gyest)

Le problème est que si l'utilisateur guest n'est pas autorisé à visiter la galerie ($conf['guest_access'] = false) alors en cas de déconnexion (si on a coché auto-connexion) on est automatiquement reconnecté.
ben non, pour $conf['guest_access'] = false
  si 2.1 => c'est une nouvelle page, donc pas de soucis
  si 2.2 => plus d'autoconnect donc pas demander la saisie des identifiant
 
Bon, je sais que c'est mort, puisque Pierrick, veut que ca soit transparent.

Donc, si on fait déconnexion, on supprimme l'auto-connextion du poste.
Pour la session, la fermeture sera implicite (fermeture browser, etc.) ou avec une purge du browser.

Hors ligne

#42 2006-07-25 12:31:25

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

Je pense que tu t'es mélangé dans ton copier/coller car les citations ne sont pas correctes.

z0rglub a écrit:

Préambule, ce que j'ai appelé dans mon post précédent "clef de connexion", c'est ce que nicolas appelle "clé d'auto-connexion". En dehors de la dénomination, je pense qu'on parle de la même chose.

on est donc d'accord.

z0rglub a écrit:

Le logout est un lien explicite comme il existe actuellement. Le logout détruit à la fois la session et l'auto-connexion associée si elle existe. Cela veut donc dire qu'une session est liée à 0 ou 1 clef d'auto-connexion.

ça me va.

z0rglub a écrit:

Reprenons :

* 1 utilisateur possède N clefs d'auto-connexion

pourquoi N ? Je suis d'accord si N=0 ou 1

z0rglub a écrit:

* une clef d'auto-connexion est stockée dans un cookie et en base de données (dans la base, on l'associe à un user_id)

ok

z0rglub a écrit:

* une session est liée à un utilisateur et éventuellement à une auto-connexion (attention à la cohérence, si le user_id associé à la clef d'auto-connexion est différent du user_id associé à la session, on est mal)

Une session est effectivement lié à un utilisateur mais elle n'est pas lié à une auto-connexion.
En fait pour faire simple: clé d'auto-connexion = login + mot de passe.
Je n'ai pas utilisé comme plein d'autres sites un hash de login + mot de passe pour faire ma clé pour ne pas compromettre le mot de passe en cas de vol de clé.

z0rglub a écrit:

Pour ceux qui suivent encore, je rappelle qu'en 1.5 le "remember me" voulait simplement dire que la session durait très longtemps.

Ce qui était une mauvaise idée.

z0rglub a écrit:

Il n'y avait pas les 2 niveaux "session" et "auto-connexion". Là, on ajoute de la complexité, j'espère que cet ajout de complexité a du sens et apporte un réel avantage à PhpWebGallery. Pour le moment, je n'en vois pas, mais ça va venir, n'est-ce pas ?

Je ne vois pas les choses ainsi. Il y a une session utilisateur et un mécanisme indépendant (auto-login) pour facilier la vie des utilisateurs en ne leur demandant pas leur login/mot de passe à chaque visite.


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#43 2006-07-26 11:43:02

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

Nicolas, tu as vu ce problème?
http://forum.phpwebgallery.net/viewtopi … 856#p41856

Qu'en penses-tu?

Dernière modification par rub (2006-07-26 11:43:29)

Hors ligne

#44 2006-07-26 14:30:54

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

rub a écrit:

Nicolas, tu as vu ce problème?
http://forum.phpwebgallery.net/viewtopi … 856#p41856

Qu'en penses-tu?

Oui j'ai lu le topic. Difficile de savoir précisément d'où vient le problème: free, cookies non accpetés, autre ?

Je pense que ce que je suis en train de finir sur les sessions avec auto-login devrait régler les différents problèmes.


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#45 2006-07-26 23:00:53

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

rub a écrit:

rub a écrit:

nicolas a écrit:


Tu peux m'en dire plus.
Quelle est la valeur de magic_quotes_gpc ? (cf phpinfo())

Pas de soucis, quand je serais à la maison, cad ce soir!

Environnement

        * System d'exploitation: WINNT
        * PHP: 4.3.10 (Montrer les informations)
        * MySQL: 4.1.9-max

config_local.inc.php:

Code:

<?php

  $conf['anti-flood_time'] = 0;
  $conf['newcat_default_visible'] = 'false';
  $conf['newcat_default_status'] = ' private';
  // history_admin : historiser les visites des administrateurs  ?
  $conf['history_admin'] = true;
  $conf['show_version'] = false;


// show_queries : for debug purpose, show queries and execution times
$conf['show_queries'] = true;

// show_gt : display generation time at the bottom of each page
//$conf['show_gt'] = true;

// debug_l10n : display a warning message each time an unset language key is
// accessed
//$conf['debug_l10n'] = true;

  $conf['links'] = array(
    './category.php?cat=search&search=allwords:,gif~AND' => 'GIF Animés',
    $_SERVER['PHP_SELF'] => $_SERVER['PHP_SELF'],
//    realpath('./category.php?cat=search&search=allwords:,gif~AND') => getCurrentPath()
//    'GIF Animés'
    /// 
  );

  // Default value false
  $conf['nbm_default_value_user_enabled'] = true;
  // Default value false
  $conf['send_bcc_mail_webmaster'] = true;

//$conf['newuser_default_enabled_high'] = 'false';

  // allow to use adviser mode
  $conf['allow_adviser'] = false;
  $conf['allow_adviser'] = true;

  // If there are no user connected, display identification page
  $conf['guest_access'] = false;


?>

local-layout.css:

Code:

/*BODY {
  background-image:url(../local/LoveFamilyBackground.gif);
  background-attachment:fixed;
}*/

#content UL.thumbnails SPAN.wrap2:hover {
  background-color: AntiqueWhite;
  color: black;
}
#content UL.thumbnailCategories DIV.thumbnailCategory:hover {
  background-color: AntiqueWhite;
  color: black;
}

#content UL.thumbnailCategories DIV.thumbnailCategory:hover A {
  background-color: AntiqueWhite;
  color: black;
}

C'est le $conf['guest_access'] = false; qui pose problème.
A true, pas de soucis!
A false et après déconnexion, il faut supprimer le cookie.

Hors ligne

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact