Annonce

#16 2006-07-24 00:55:49

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

mathiasm a écrit:

rub a écrit:

mathiasm a écrit:

Pour moi, si l'utilisateur se déconnecte, on purge l'auto-login avec. Sinon, la déconnexion n'a pas de sens.

Ce ne convient aux fonctionnement multi-poste. (maison + bureau).
Si je me deconnecte du bureau pourquoi me déconnecter de la maison?

Je me suis mal exprimé, je parlais du cookie.

Pour l'id, la purge se fait dans le profil utilisateur:
- case à cocher dans "Personnalisation"
- bouton ou lien dans la zone "identification" du menu, genre "RAZ autoconnexion". Il peut rester connecté et juste désactiver l'auto-login pour les prochaines fois.

J'avais mal compris effectivement ;-)

Et si je  veux auto-connect à la maison et pas au bureau? Est-ce que cela ca fonctionne? Je ne pense pas!

Pourquoi une clef pour une utilisateur, pourquoi pas n clefs pour un utilisateur?
Avec suppression de la clef lors de la deconnexion demandée et une purge auto des clefs non utlisée s depuis quelques temps (quelques mois). (Purge global à chaque naviagtion dans admin ou un menu "purger les vieilles clefs de connexions" et/ou purge pour l'utilisateur à chaque connexion)

Hors ligne

#17 2006-07-24 09:58:54

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

rub a écrit:

Cela ne rique pas de poser un problème avec les users génériques qui permettent d'avoir plusieurs utilisateurs pour le même compte et connectés en même temps?
En y refléchissant, je ne pense pas car toute le monde aura la même clef, le seul hic, c'est de ne plus mettre à jour la clef une fois celle-ci déterminée.

Je ne suis pas sûr de bien comprendre de quoi tu parles. Si tu dis qu'un même compte sert pour plusieurs personnes alors effectivement ils auront tous la même clé. Mais si un se déconnectes avec suppression de la clé alors ils seront tous déconnectés. Donc je dirais que ça va poser des problèmes. Mais quoi qu'il en soit les utilisateurs génériques posent de toutes façons d'autres problèmes: s'il y en a un qui change de thème, de mot de passe, de nombre de photos par page,... alors les paramètres sont changés pour tout le monde. Personnellement je ne me sers pas d'utilisateurs génériques. Je crée un groupe générique.

rub a écrit:

nicolas a écrit:

Je ne sais pas trop de quelle manière le mettre en place. L'idée de la case à cocher à côté de se déconnecter vous parait-elle bonne ? Ou alors un autre lien: détruire ma clé d'auto-login ce qui permettrait de se dé-auto-identifier sur tous les postes. Cela peut arriver par exemple si on a quitté sa société et comme un con, on a oublié d'effacer l'historique/cache/cookie avant de partir.

Quelque soit la solution attention aux users génériques.
Plutot pour la destruction/réinit de la clef de connexion.

La nuit ayant porté conseil, je pense qu'il faut deux liens. Un lien "déconnexion" et un lien "supprimer la clé".

rub a écrit:

nicolas a écrit:

Je me demande s'il ne faut pas aussi prévoir dans la partie administration un lien "supprimer toutes les clés d'auto-login" au même titre que "purger les sessions".

Oui, ca peut servir.

je pense aussi.


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

Hors ligne

#18 2006-07-24 10:03:00

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

mathiasm a écrit:

Pour moi, si l'utilisateur se déconnecte, on purge l'auto-login avec. Sinon, la déconnexion n'a pas de sens.

Si! La déconnexion supprime la session active. Pour qu'elle ait un sens il ne faudrait pas que la reconnexion soit automatique en cas de déconnexion. C'est le cas si l'utilisateur "guest" est autorisé ($conf['guest_access'] = true;). Je penche pour une page déconnexion réelle avec comme simple contenu: votre session n'est plus active, cliquez sur ce lien pour vous reconnecter (qui pointe vers identification).


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

Hors ligne

#19 2006-07-24 10:11:24

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

rub a écrit:

rub a écrit:

Actuellement en me déconnectant, j'ai

Notice: unserialize(): Error at offset 5 of 93 bytes in d:\dev\bsf\identification.php on line 76

SELECT auto_login_key
  FROM phpwebgallery_users
  WHERE id =
;
[mysql error 1064] Erreur de syntaxe près de '' à la ligne 3

Pour info, j'ai  paramétré $conf['guest_access'] = false;

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


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

Hors ligne

#20 2006-07-24 12:01:36

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

nicolas a écrit:

rub a écrit:

Cela ne rique pas de poser un problème avec les users génériques qui permettent d'avoir plusieurs utilisateurs pour le même compte et connectés en même temps?
En y refléchissant, je ne pense pas car toute le monde aura la même clef, le seul hic, c'est de ne plus mettre à jour la clef une fois celle-ci déterminée.

Je ne suis pas sûr de bien comprendre de quoi tu parles. Si tu dis qu'un même compte sert pour plusieurs personnes alors effectivement ils auront tous la même clé. Mais si un se déconnectes avec suppression de la clé alors ils seront tous déconnectés. Donc je dirais que ça va poser des problèmes. Mais quoi qu'il en soit les utilisateurs génériques posent de toutes façons d'autres problèmes: s'il y en a un qui change de thème, de mot de passe, de nombre de photos par page,... alors les paramètres sont changés pour tout le monde. Personnellement je ne me sers pas d'utilisateurs génériques. Je crée un groupe générique.

Les utilisateurs génériques ont des droits restreints et non pas la possiblité de changer de théme, de mot de passe, etc..
Un user générique, c'est pour avoir du "public" sans que ca le soit réellement. Ca permet d'éviter de créer plein de compte et de comminiquer sur un user génériques qui sert de sésame.
Bref, je penses qu'il faudra un comportement différent pour les génériques.


nicolas a écrit:

rub a écrit:

rub a écrit:

Actuellement en me déconnectant, j'ai

Notice: unserialize(): Error at offset 5 of 93 bytes in d:\dev\bsf\identification.php on line 76

SELECT auto_login_key
  FROM phpwebgallery_users
  WHERE id =
;
[mysql error 1064] Erreur de syntaxe près de '' à la ligne 3

Pour info, j'ai  paramétré $conf['guest_access'] = false;

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!

rub a écrit:

...Et si je  veux auto-connect à la maison et pas au bureau? Est-ce que cela ca fonctionne?...

Est-ce que ca fonctionne?

Hors ligne

#21 2006-07-24 12:23:12

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

nicolas a écrit:

rub a écrit:

nicolas a écrit:

Je ne sais pas trop de quelle manière le mettre en place. L'idée de la case à cocher à côté de se déconnecter vous parait-elle bonne ? Ou alors un autre lien: détruire ma clé d'auto-login ce qui permettrait de se dé-auto-identifier sur tous les postes. Cela peut arriver par exemple si on a quitté sa société et comme un con, on a oublié d'effacer l'historique/cache/cookie avant de partir.

Quelque soit la solution attention aux users génériques.
Plutot pour la destruction/réinit de la clef de connexion.

La nuit ayant porté conseil, je pense qu'il faut deux liens. Un lien "déconnexion" et un lien "supprimer la clé".

J'ai peur que l'utilisateur lambda ne sache pas à quoi pourrait bien servir ce lien.
Mais, je suis d'accord qu'il faut quelque chose pour supprimer la ou les clefs de connexion d'un utilisateur. Soit dans "personnalisation" ou une nouvelle section utilisateur ("options", "options avancées", "configuration", etc...)... "personnalisation" n'est pas accesible aux utilisateurs status génériques et donc s'il y a nouvelle section, elle ne devra pas l'être nous plus.

Hors ligne

#22 2006-07-24 12:56:12

mathiasm
Former Piwigo Team
2006-02-06
2692

Re: Le fonctionnement des sessions.

rub a écrit:

Et si je  veux auto-connect à la maison et pas au bureau? Est-ce que cela ca fonctionne? Je ne pense pas!

Bah si; C'est le cookie qui détermine si tu es en auto-login ou pas.
Ton cookie peut-être différent au bureau et à la maison.
Mais l'id qui valide ta première connexion login/password est le même.

Hors ligne

#23 2006-07-24 13:00:41

mathiasm
Former Piwigo Team
2006-02-06
2692

Re: Le fonctionnement des sessions.

rub a écrit:

nicolas a écrit:

La nuit ayant porté conseil, je pense qu'il faut deux liens. Un lien "déconnexion" et un lien "supprimer la clé".

J'ai peur que l'utilisateur lambda ne sache pas à quoi pourrait bien servir ce lien.
Mais, je suis d'accord qu'il faut quelque chose pour supprimer la ou les clefs de connexion d'un utilisateur. Soit dans "personnalisation" ou une nouvelle section utilisateur ("options", "options avancées", "configuration", etc...)... "personnalisation" n'est pas accesible aux utilisateurs status génériques et donc s'il y a nouvelle section, elle ne devra pas l'être nous plus.

voir mon post plus haut (00:19) :
"RAZ autoconnexion" ou "supprimer l'autoconnexion", avec un avertissement pour dire que ça s'applique à toutes les connexions.

Hors ligne

#24 2006-07-24 13:04:59

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

mathiasm a écrit:

rub a écrit:

Et si je  veux auto-connect à la maison et pas au bureau? Est-ce que cela ca fonctionne? Je ne pense pas!

Bah si; C'est le cookie qui détermine si tu es en auto-login ou pas.
Ton cookie peut-être différent au bureau et à la maison.
Mais l'id qui valide ta première connexion login/password est le même.

C'est bien ce que je pensais! Je pose les questions pour bien valider le tout!

Et si je suis en auto-connect au bureau et à la maison, et que je decides de supprimer l'auto-connect au boulot...? Ca dépend de la purge de la clef!

Pour reprendre quelques postes au dessus, pour les users génériques, il suffit simplement d'empécher la suppression de la clef. (lien non visible si lien ou non purge auto si purge auto)

Hors ligne

#25 2006-07-24 13:10:47

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

mathiasm a écrit:

rub a écrit:

nicolas a écrit:

La nuit ayant porté conseil, je pense qu'il faut deux liens. Un lien "déconnexion" et un lien "supprimer la clé".

J'ai peur que l'utilisateur lambda ne sache pas à quoi pourrait bien servir ce lien.
Mais, je suis d'accord qu'il faut quelque chose pour supprimer la ou les clefs de connexion d'un utilisateur. Soit dans "personnalisation" ou une nouvelle section utilisateur ("options", "options avancées", "configuration", etc...)... "personnalisation" n'est pas accesible aux utilisateurs status génériques et donc s'il y a nouvelle section, elle ne devra pas l'être nous plus.

voir mon post plus haut (00:19) :
"RAZ autoconnexion" ou "supprimer l'autoconnexion", avec un avertissement pour dire que ça s'applique à toutes les connexions.

Il faut bien faire attention à ne pas créer d'ambiguité entre supprimer l'autoconnection sur le poste utilisateur et l'auto connexion sur tous les postes.

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)

Dernière modification par rub (2006-07-24 13:11:12)

Hors ligne

#26 2006-07-24 13:12:41

mathiasm
Former Piwigo Team
2006-02-06
2692

Re: Le fonctionnement des sessions.

RAZ autoconnexions, alors :)
Ta parenthèse, c'est mais pas dans le menu identification, je suppose?
OK pour la prsonnalisation, sinon.
Ceux qui n'y ont pas accès ne peuvent avoir d'autoconnexion, alors...

Hors ligne

#27 2006-07-24 14:27:22

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

rub a écrit:

mathiasm a écrit:

rub a écrit:


J'ai peur que l'utilisateur lambda ne sache pas à quoi pourrait bien servir ce lien.
Mais, je suis d'accord qu'il faut quelque chose pour supprimer la ou les clefs de connexion d'un utilisateur. Soit dans "personnalisation" ou une nouvelle section utilisateur ("options", "options avancées", "configuration", etc...)... "personnalisation" n'est pas accesible aux utilisateurs status génériques et donc s'il y a nouvelle section, elle ne devra pas l'être nous plus.

voir mon post plus haut (00:19) :
"RAZ autoconnexion" ou "supprimer l'autoconnexion", avec un avertissement pour dire que ça s'applique à toutes les connexions.

Il faut bien faire attention à ne pas créer d'ambiguité entre supprimer l'autoconnection sur le poste utilisateur et l'auto connexion sur tous les postes.

On lève l'ambigüité je pense en ne plaçant ce lien que dans la partie personnalisation.

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.

Si on veut réinitialiser le mécanisme d'auto-connexion il faut aller dans "personnalisation". Ce lien "réinitialisation de l'auto-connection pour l'ensemble des postes" supprimera la clé dans la table users ainsi que le cookie pour le poste sur lequel on est. Mais le cookie va continuer d'exister sur les autres postes et on va se retrouver avec un problème difficile à résoudre. J'ai considéré que si la clé contenu dans le cookie n'était pas la clé contenu dans la base alors il s'agissait d'une tentative de piratage et je supprimais la clé de la base ainsi que le cookie sur le poste à partir duquel j'essayais de me connecter.
Imaginons le cas suivant. J'ai 3 postes avec pour tous l'auto-connexion
poste1: clé 1
poste2: clé 1
poste3: clé 1
dans la base: clé 1

Sur le poste 1, je supprime l'auto-connexion sur tous les postes. Donc on supprime clé 1 de la base et le cookie du poste 1. J'essaie de me connecter sur le poste 2. J'ai une clé d'auto-connexion mais elle est différente de celle de la base (vide dans la base). C'est considéré comme une attaque. Ma clé est supprimée et on me demande de me connecter. Je le fais et cela me crée une clé d'auto-connexion 2. La clé dans la base est la clé 2. J'essaie à présent de me connecter sur le poste 3 avec auto-connexion et cela supprime la clé 2 de la base et mon cookie contenant la clé 1. Pour résoudre le problème il faudrait pouvoir supprimer l'auto-connexion sans se connecter. Bizarre.

Je pense qu'il faudrait pouvoir supprimer l'auto-connexion que sur le poste sur lequel on est. Non ? Pour par exmple pouvoir se connecter avec un autre utilisateur!

Je dois sûrement m'embrouiller et vouloir faire compliqué. Si quelqu'un a les idées claires, merci de faire un p'tit résumé.


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

Hors ligne

#28 2006-07-24 14:51:34

mathiasm
Former Piwigo Team
2006-02-06
2692

Re: Le fonctionnement des sessions.

nicolas a écrit:

Si on veut réinitialiser le mécanisme d'auto-connexion il faut aller dans "personnalisation". Ce lien "réinitialisation de l'auto-connection pour l'ensemble des postes" supprimera la clé dans la table users ainsi que le cookie pour le poste sur lequel on est. Mais le cookie va continuer d'exister sur les autres postes et on va se retrouver avec un problème difficile à résoudre. J'ai considéré que si la clé contenu dans le cookie n'était pas la clé contenu dans la base alors il s'agissait d'une tentative de piratage et je supprimais la clé de la base ainsi que le cookie sur le poste à partir duquel j'essayais de me connecter.
Imaginons le cas suivant. J'ai 3 postes avec pour tous l'auto-connexion
poste1: clé 1
poste2: clé 1
poste3: clé 1
dans la base: clé 1

Sur le poste 1, je supprime l'auto-connexion sur tous les postes. Donc on supprime clé 1 de la base et le cookie du poste 1. J'essaie de me connecter sur le poste 2. J'ai une clé d'auto-connexion mais elle est différente de celle de la base (vide dans la base). C'est considéré comme une attaque. Ma clé est supprimée et on me demande de me connecter. Je le fais et cela me crée une clé d'auto-connexion 2. La clé dans la base est la clé 2. J'essaie à présent de me connecter sur le poste 3 avec auto-connexion et cela supprime la clé 2 de la base et mon cookie contenant la clé 1. Pour résoudre le problème il faudrait pouvoir supprimer l'auto-connexion sans se connecter. Bizarre.

Je pense qu'il faudrait pouvoir supprimer l'auto-connexion que sur le poste sur lequel on est. Non ? Pour par exmple pouvoir se connecter avec un autre utilisateur!

Je dois sûrement m'embrouiller et vouloir faire compliqué. Si quelqu'un a les idées claires, merci de faire un p'tit résumé.

Le problème vient du fait que tu supprimes la clé de la base si celle du cookie est différente. C'est dangereux! Si un pirate arrive avec un cookie d'une ancienne session, il me casse ma clé active, mais ne peut de toutes façons pas rentrer sans mon mot de passe ou ma session actuelle. Il est donc inutile de réinitialiser la clé de la base sur une simple différence base/cookie.
Ça signifie que dès qu'un mec essaie ta serrue avec une clé qui n'est pas la bonne, tu fais changer ta serrure, mais tu n'as pas la nouvelle clé. Excessif, non?
1. Si la clé du cookie est différente de celle de la base, on demande l'authentification.
  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.

Mieux, non?

Hors ligne

#29 2006-07-24 16:27:32

nicolas
Former Piwigo Team
2004-12-30
1561

Re: Le fonctionnement des sessions.

mathiasm a écrit:

Le problème vient du fait que tu supprimes la clé de la base si celle du cookie est différente. C'est dangereux! Si un pirate arrive avec un cookie d'une ancienne session, il me casse ma clé active, mais ne peut de toutes façons pas rentrer sans mon mot de passe ou ma session actuelle. Il est donc inutile de réinitialiser la clé de la base sur une simple différence base/cookie.
Ça signifie que dès qu'un mec essaie ta serrue avec une clé qui n'est pas la bonne, tu fais changer ta serrure, mais tu n'as pas la nouvelle clé. Excessif, non?

Tout dépend du niveau de sécurité que tu souhaites. Pour garder ton exemple, si quelqu'un a essayé ma serrure et que ça se voit je vais effectivement changé la serrure!

Mais sinon je suis d'accord, je vais modifier cela pour ne pas supprimer la clé à la première tentative incorrecte. Il faudra tout de même être conscient qu'il y a un risque; même s'il est minime.

C'est fait: rev 1494

mathiasm a écrit:

1. Si la clé du cookie est différente de celle de la base, on demande l'authentification.

ok

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.

Dernière modification par nicolas (2006-07-24 17:43:09)


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

Hors ligne

#30 2006-07-24 23:28:16

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Le fonctionnement des sessions.

rub a écrit:

nicolas a écrit:

rub a écrit:


Pour info, j'ai  paramétré $conf['guest_access'] = false;

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;
}

Hors ligne

Pied de page des forums

Propulsé par FluxBB

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