Jump to content

[Résolu] Les cookies et la sécurité


Buzby

Recommended Posts

Bonjour,

Je viens de me rendre compte que pour la sécurité des infos personnelles prestashop n'est pas top. En effet, un client qui passe commande sur le site est connecté et une fois avoir fini la transaction il ferme la page. Si le client a effectué sa transaction sur un ordi public, n'importe qui peut se connecter sur son compte même 24h apres car le site aura toujours une session ouverte!
Ceci est idem pour se connecter à l'admin de prestashop... La fonction qui permet de changer la duree de demande du mot de passe ne fonctionne pas.

Il faudrait que passé un temps d'inactivité une deconnection automatique.

Que comptez vous faire?

Link to comment
Share on other sites

  • 9 months later...
  • 6 months later...

Hola!

Je m'interroge... Avez-vous idée de comment séparer la gestion du cookie pour le timeout du FO de celui du BO ?
Peut-être un module existe ?
Je considère que le niveau de sécurité requis n'est pas le même pour ces interfaces, et d'un point de vue pratique, quand vous traitez des commandes, il est très confortable de ne pas être obligé de se reconnecter toutes les... 2 heures. Les 20 jours par défaut me plaisent beaucoup pour le BO, mais il est vrai un peu moins pour le FO...
Je serais intéressé de lire des discussions sur les raisons de ce choix de la team.
Have a nice day !

Link to comment
Share on other sites

  • 8 months later...

Bonjour,

Je déterre un peu se topique, car il m'intéresse, accédant à une boutique privée depuis des ordinateurs de clients, je souhaiterai pouvoir réduire la durée d'une session, cependant la durée d'une réunion peut variée, dans ce cas je ne peux pas fixer de durée précise, et je ne peux pas perdre de temps sans arrêt à devoir me reconnecter, donc l'idéal serait de déconnecter en cas d'inactivité uniquement. car si je dois me relog toutes les 5mins c'est la franchement pas terrible.

Par contre je dois me déconnecter en cas d'inactivité de 5min, ce qui est sensiblement différent.

Est-il possible de faire cela?

un truc du genre

if ($duree_inactivite >= 300){ //exprimé en seconde
$this->_expire = isset($expire) ? intval($expire) : (time() + 0); //on ajoute 0 à la durée de la session, donc elle expire immédiatement
} else {
$this->_expire = isset($expire) ? intval($expire) : (time() + 300); //sinon on rajoute 300sec (5min) à la session
}


Mais comment définir cette variable "$duree_inactive"? Et est-ce que cette variable sera relue toutes les 5min ?

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

Hello Geoff95,

Ce sont des développements spécifiques que tu demandes là :P
Remet ton fichier Class Cookie comme il était à l'origine (20 jours).

Ensuite, tu places ces lignes de code dans le fichier init de ton admin (juste derrière la déclaration de cookie) :

if (!isset($cookie->last_action))
   $cookie->last_action = time();
if ((time() - $cookie->last_action) > 300)
   $cookie->logout();
else
   $cookie->last_action = time();



Tu seras alors délogué au bout de 5 mn d'inactivité ;)

Dis moi si cela règle ton problème :)

Link to comment
Share on other sites

Salut,

Merci de ta réponse, mais une petite question, ceci concerne le BO ou le FO? Car il me faut cette expiration côté FO uniquement.

Pour la déclaration de cookie dont tu parles, c'est celle-ci:

/* Getting cookie or logout */
if (!class_exists('Cookie'))
   exit();



ou bien celle-ci:

/* logged or not */
if (!$cookie->isLoggedBack())
   Tools::redirectLink('login.php'.$url_redirect);




Merci,
Geoffrey.

  • Like 1
Link to comment
Share on other sites

Re,

Merci, c'est parfais, ça fonctionne.

Je me permet d'abuser encore un peu de ton temps, pour te demander si tu pouvais jeter un coup d'oeil à ce topic:
http://www.prestashop.com/forums/viewthread/114193/developpement/ajout_de_champs_formulaires___requetes/

Personne n'a visiblement su me répondre. Si tu pouvais au moins regarder pour la première partie de mon soucis (il y a 2 questions) ça serait déjà pas mal.

Merci pour le temps que tu m'accordes.
Geoffrey.

Link to comment
Share on other sites

  • 2 months later...

Elle concernait le BO uniquement.

Pour la déclaration sur le FO, il faudra l'insérer après la ligne 95 de la classe FrontController en 1.4, c'est à dire après la ligne :

$cookie = new Cookie('ps');

 

C'est parfait, merci ;)

 

(Je pense qu'il serait utile de mettre cette option dans : back office / préférences)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...