[php] Sessions systématiques ?

pianomambo

Nouveau WRInaute
Bonjour à tous,

Voilà. J'ai créé un CMS wysiwyg : pour modifier une page, l'administrateur se connecte puis va directement sur la page à modifier. Celle-ci apparaît normalement, à l'exception d'une barre de menu horizontal qui permet de faire les changements nécessaires.

Ainsi, pour une même URL, on peut aboutir sur deux modes :
- normal
- édition

La question : Est-ce une bonne solution de créer systématiquement une session pour vérifier si l'on est en mode édition ?

Ce qui me dérange, c'est le cloacking alors nécessaire pour éviter que les robots s'emmêlent les pinceaux. ça paraît pas très clean, d'autant plus que ça ouvre beaucoup de sessions inutiles.

L'autre solution que je vois est de rajouter un paramètre en GET, du type "mode=edition". Mais alors, il me faut réécrire à la volée tous les liens internes, pour que l'administrateur, lorsqu'il passe d'une page à l'autre, ne sorte pas du mode édition. Cette solution permet de limiter l'utilisation des sessions à la simple vérification des droits d'accès au mode édition.

Alors est-ce que je systématise mes sessions ?

Merci de votre aide pour cette question qui doit être triviale, mais que je n'arrive pas à trancher seul. La recherche sur le forum des mots "session" et "moteur de recherche" n'aboutit pas : les mots sont trop courants.

Bien à vous,

PM
 

jcaron

WRInaute accro
pianomambo a dit:
Ce qui me dérange, c'est le cloacking alors nécessaire pour éviter que les robots s'emmêlent les pinceaux. ça paraît pas très clean, d'autant plus que ça ouvre beaucoup de sessions inutiles.

Quel cloaking? Ton comportement par défaut doit convenir aux robots, non?

Ceci dit, le plus simple est probablement de mettre un petit cookie qui indique si on est en mode admin, et de le tester, ça permet d'éviter de créer des sessions pour rien (si tu n'en as pas besoin par ailleurs). Evidemment le cookie doit être un minimum sécurisé.

Jacques.
 

nickargall

WRInaute accro
En gros, tu as un système de gestion de site ou le côté client & l'administration sont présents sur des mêmes URL, et tu utilises des sessions pour savoir si l'on est connecté en tant qu'administrateur pour, le cas échéant, afficher les fonctionnalités d'administration du contenu. C'est ça ?

Dans ce cas de figure, bien sûr qu'il faut utiliser des sessions, et pas simplement un paramètre GET.
imagine qu'une consultation de page avec ce paramètre GET provoque son indexation par Google ... tout le monde aurait accès à l'administration du site ...

Après, si tu utilises des sessions, je ne vois pas en quoi tu dois utiliser du cloaking. L'utilisateur qui s'est identifié voit les outils d'admin, les autres (dont les robots) n'auront pas d'accès.
 

nickargall

WRInaute accro
En gros, tu as un système de gestion de site ou le côté client & l'administration sont présents sur des mêmes URL, et tu utilises des sessions pour savoir si l'on est connecté en tant qu'administrateur pour, le cas échéant, afficher les fonctionnalités d'administration du contenu. C'est ça ?

Dans ce cas de figure, bien sûr qu'il faut utiliser des sessions, et pas simplement un paramètre GET.
imagine qu'une consultation de page avec ce paramètre GET provoque son indexation par Google ... tout le monde aurait accès à l'administration du site ...

Après, si tu utilises des sessions, je ne vois pas en quoi tu dois utiliser du cloaking. L'utilisateur qui s'est identifié voit les outils d'admin, les autres (dont les robots) n'auront pas d'accès.
 

nickargall

WRInaute accro
utilises des sessions pour savoir si l'on est connecté en tant qu'administrateur pour, le cas échéant, afficher les fonctionnalités d'administration du contenu. C'est ça ?

Dans ce cas de figure, bien sûr qu'il faut utiliser des sessions, et pas simplement un paramètre GET.
imagine qu'une consultation de page avec ce paramètre GET provoque son indexation par Google ... tout le monde aurait accès à l'administration du site ...

Après, si tu utilises des sessions, je ne vois pas en quoi tu dois utiliser du cloaking. L'utilisateur qui s'est identifié voit les outils d'admin, les autres (dont les robots) n'auront pas d'accès.
 

jcaron

WRInaute accro
pianomambo a dit:
Ce qui me dérange, c'est le cloacking alors nécessaire pour éviter que les robots s'emmêlent les pinceaux. ça paraît pas très clean, d'autant plus que ça ouvre beaucoup de sessions inutiles.

Quel cloaking? Ton comportement par défaut doit convenir aux robots, non?

Ceci dit, le plus simple est probablement de mettre un petit cookie qui indique si on est en mode admin, et de le tester, ça permet d'éviter de créer des sessions pour rien (si tu n'en as pas besoin par ailleurs). Evidemment le cookie doit être un minimum sécurisé.

Jacques.
 

pianomambo

Nouveau WRInaute
Merci pour vos réponses rapides.

Concernant la sécurité, je suis bien entendu convaincu de la nécessité des sessions pour le mode edition.

Mais j'avais cru comprendre que les sessions n'étaient pas bien appréciées des moteurs de recherche.
exemple : https://www.webrankinfo.com/dossiers/conseils/bon-referencement-php
(qui propose un petit cloacking)

Pour résumer le problème, comme les moteurs de recherche ne peuvent recourir aux cookies, l'ID de session est passé par l'URL, compliquant de fait le référencement.

Ainsi donc, le comportement par défaut qui consisterait à ouvrir systématiquement une session n'est-il pas problématique ?
(sans compter les visiteurs qui n'acceptent pas les cookies, et dont les URL vont se compliquer également).

Je crois que Jacques m'a donné la solution : vérifier d'abord un paramètre cookie puis, le cas échéant, ouvrir une session.
La question devient alors : comment les moteurs de recherche se comportent-ils lorsque l'on teste chez eux la présence d'un cookie ? Autre problème : cookie + session, ça fait un peu usine à gaz, non ?

Bien à vous,

PM
 

pianomambo

Nouveau WRInaute
J'ai l'impression qu'un "use_only_cookies" résout peut-être mon problème.
Ce serait sympa d'avoir une bonne grosse confirmation !
 

nickargall

WRInaute accro
Code de démarrage de session PHP en interdisant le passage dans l'URL :
Code:
/*
* Demarrage de session
*/
ini_set("session.use_trans_sid","0");
ini_set("url_rewriter.tags","");
session_start();
 

Discussions similaires

Haut