Closed Nono-m0le closed 5 months ago
Tu utilises la version dans le src ? Parce que normalement je pensais avoir réglé ce problème avec la version 8.14 ?
AH, j'etais en 8.12 je te tiens au jus :D (C'est quoi la diff entre index.php et src/index.php ?)
Idem en 8.14 :(
Ah zut et ton dossier sessions est bien utilisé (il se remplit de nouveau de fichiers de sessions) ? Je viens de tester de mon côté, je ne l'utilisais pas. Je verrais si je suis déconnecté ou pas.
La différence c'est que le fichier index.php est normalement stable et src/index.php en développement. C'est pour ça que j'attends un peu depuis la version 8.12 je savais qu'il pouvait y avoir quelques soucis, mais je pensais que la 8.14 était bonne, je vais devoir encore attendre un peu pour la remplacer.
Oui oui +100 fichiers dans le dossier sessions.
Ce qui m'embête c'est que ça n'arrive que sous Firefox mobile sous Android (à jour)
Tu restes connecté sur les autres navigateurs ? Ça vient peut-être juste d'une configuration lié aux cookies ? Est-ce que tu as essayé en cochant l'option de protection de session (pour désactiver certains tests de reconnaissance de sessions) ?
'cochant l'option de protection de session' c'est dans KF ou Firefox ? Sur le ordis (Linux FF et Windows chrome) , je reste toujours connecté oui, sans timeout ni déco
Dans KF :-)
Bon de mon côté, je n'ai pas vraiment pu tester parce que je détruis les cookies à la fermeture mais si ça marche sur les ordis et pas le téléphone, j'imagine que c'est lié à une configuration sur le navigateur du téléphone. Tu as essayé avec d'autres navigateurs sur le téléphone pour voir si ça ne marche pas que sur Firefox ?
En testant avec les cookies, j'ai pu le faire fonctionner en ajoutant une ligne de config dans le fichier plugins sessions.php :
<?php
ini_set("session.cookie_lifetime", "31536000");
ini_set("session.gc_maxlifetime", '86400');
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'].'/sessions');
Je ne sais pas si ton serveur est configuré par défaut avec un cookie_lifetime différent mais moi ça ne marchait pas du tout à cause de ça et là ça semble fonctionner...
Pas mieux. J'ai remarqué que simplement fermer Firefox mobile et le ré-ouvrir me deconnectais.Du coup, je pense pas que ce soit le timeout mais bien le session. J'ai essayer de supprimer mes identifiants sauvegardé... Quand je les remets, les champs se rempli automatiquement mais le 'stay signed in' n'est jamais coché... null
Du mieux dans la 8.15 ? 👀
Je ne pense pas que ça change grand chose, mais pour le coup ça fonctionne très bien chez moi, j'ai testé sur bureau et mobile, aucun soucis. À part une config particulière client / serveur je ne sais pas trop ce que je peux modifier de mon côté.
On m'a signalé un warning php lié au cookie que j'ai corrigé : https://github.com/tontof/kriss_feed/commit/360e4ddceaeb14151ee1e2f899624582eb82887f avec un peu de chance ça corrigera ton problème de session. Tu me diras, c'est la 8.16
Est-ce que ton problème de déconnexion est corrigé avec la nouvelle version ?
Je viens de tester la 8.19 (depuis 2/3 jours en fait) et c'est toujours le même problème, que sur Firefox Android :(
Salut, pour refaire un peu le point :
Je viens d'essayer sur vivaldi, fraîchement téléchargé pour l'occasion : idem. Je n'ai pas de problème sur d'autres site. Edit: la protection de session est DÉJÀ désactivé...
Est-ce possible que mon plugin session et le fait que la protection soit désactivé puisse causer ce souci uniquement sur mobile ?
Techniquement, je ne vois pas trop pourquoi ce comportement se produit uniquement sur mobile. Est-ce que tu aurais la possiblité de me faire un dossier KF pour moi que je fasse des tests ? Dans un premier temps, voir si tu as le même problème à partir d'une version initiale de KF sans plugins, puis avec, etc. Et si c'est le cas, que je teste avec la même nouvelle instance que toi pour approfondir le test.
Depuis quelques jours, je suis déconnecté très souvent, sans avoir a priori changé un quelconque réglage. Enfin si, j'ai coché la case pour désactiver la protection contre le vol de cookie de session, depuis que ça a commencé à se déconnecter, mais ça n'a rien changé. Je consulte toujours sur desktop avec Firefox.
FF 122.0.1 / Kriss 8.19
Bon, en fait je pense que ça vient de Firefox (ou d'un de ses modules) puisque depuis quelques jours, il me déconnecte d'autres sites sans que je lui demande.
Il me semble que Firefox a renforcé sa gestion des cookies, est-ce que ça peut venir de ça ? Je suis encore à la version 115.7.0esr de Firefox et je n'ai pas de soucis particulier. Je n'ai pas eu d'autres retours pour le moment, si tu as d'autres infos/évolutions je suis preneur.
Oui c'est sans doute ça. Je n'ai pas vu passer cette info sur le renforcement de la gestion des cookies, mais ça y ressemble. Je vais investiguer à ce propos.
J'ai pris l'habitude, mais il me déconnecte plusieurs fois par jour, uniquement sur Firefox mobile (android)
Salut a tous, En voyant ce fil, cela me fait pensé a un problème de déconnexion lié a un changement d'IP du client.
Cela se produit aussi avec invoiceplane et avec une connexion mobile orange qui bascule d'IPV4 a V6 de temps a autre et aléatoirement. j'ai débusqué cela, alors qu'un ami était chez moi a faire ses factures (sur son mobile, déjà difficile) et je scrutais les logs serveur de mon coté et paf j'ai saisi au vol (parmi les bots) le fait des redirections sur la page de login dû au changement de son Adresse IP (et la haine pour lui car son $_POST perdu). En modifiant un peu la source afin que le cookie n'est aucune référence de l'adresse IP, il reste connecté...
Tester en commentant la ligne. https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php#L112
$ip.= isset($_SERVER['HTTP_CLIENT_IP']) ? '_'.$_SERVER['HTTP_CLIENT_IP'] : '';
Bon c'est sur c'est moins sécure, mais a priori c'est celle là. ou celle-ci : https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php#L142
$_SESSION['ip'] = self::_allIPs();
En toute cordialités.
En commentant, ça permettrait effectivement de confirmer ou pas si c'est lié à ça, mais effectivement un changement d'IPV4/6 déconnecte la session. En utilisant l'info du user-agent à la place de l'ip pour garder une "relative" sécurité ?
Pour tester il est possible de remplacer cette ligne dans la fonction _allIps en faisant un return "";
https://github.com/tontof/kriss_feed/blob/master/index.php#L5039
ou par return $_SERVER['HTTP_USER_AGENT'];
?
Merci en tout cas pour l'info !
Pour ma part, ca ne change rien, cela dit, je peux reproduire le "bug" à l'infini :
Au cas où,
en cherchant $_SESSION
parmi ses 9396 lignes, il y à celle-ci
https://github.com/tontof/kriss_feed/blob/a154b054cb7f98066016a6b0e4eee9a6c52512a2/index.php#L8640
// when browser closes
$_SESSION['longlastingsession'] = 0;
qui était ça
- Session::setCookie(0);
+ $_SESSION['longlastingsession'] = 0;
ds la dernière MAJ https://github.com/tontof/kriss_feed/commit/a154b054cb7f98066016a6b0e4eee9a6c52512a2#diff-7413d6453f901e939bbd840c8f0d1c7b20c2ca0e7f71741e4e07c6cf036f16c0L8594
- $_SESSION['expires_on'] =
- time() + $_SESSION['longlastingsession'];
- Session::setCookie($_SESSION['longlastingsession']);
Et celles-ci me semble curieuses https://github.com/tontof/kriss_feed/commit/a154b054cb7f98066016a6b0e4eee9a6c52512a2#diff-7413d6453f901e939bbd840c8f0d1c7b20c2ca0e7f71741e4e07c6cf036f16c0R4989
- self::setCookie();
+ $lifetime = null;
+ if (!empty($_SESSION['longlastingsession'])) {
+ $lifetime = $_SESSION['longlastingsession'];
+ }
+ self::setCookie($lifetime);
Il semble que les cookies soient gérés d'une autre manière Session::setCookie
vers self::SetCookie
ps : dsl je sais pas colorisé ds les commentaires (pensais que les + et - le ferais)
Après réflexion, ça ne peut pas venir de _allIp parce que l'option "désactiver la protection contre le vol de cookie de session" permet de ne pas tester avec _allIp et ça ne marche pas non plus avec cette option.
Normalement il n'y a pas de différence entre Session::setCookie
et self::setCookie
(la méthode étant statique, utiliser self permet de ne pas dépendre du nom de la classe). Je ne suis pas très fier de cette classe Session, je n'aurais pas fait comme ça maintenant.
Par contre il y a effectivement un truc qui n'est pas bon ! Dans la fonction init, j'utilise $_SESSION
avant session_start ce qui n'est pas possible. Je viens de déplacer cette partie, est-ce que vous pouvez tester pour voir si ça change quelque chose ?
https://raw.githubusercontent.com/tontof/kriss_feed/master/src/index.php
Warning: session_set_cookie_params(): Session cookie parameters cannot be changed when a session is active in /var/www/html/rss/index.php on line 5030
Pour ma part...
Arf, merci pour le retour, mais ça explique peut-être bien le problème. Dans la doc php, je suis tombé sur ce commentaire https://www.php.net/manual/en/function.session-set-cookie-params.php#100657 et je vais essayer de modifier pour prendre en compte toutes ces infos.
En attendant, si tu commentes la ligne en ajoutant //
au début de la ligne 5030 qui appelle la fonction session_set_cookie_params, ça donne quoi ?
J'ai plus l'erreur, mais fermer Firefox sur mobile me déconnecte toujours.
Nouvelle tentative : https://raw.githubusercontent.com/tontof/kriss_feed/master/src/index.php Je n'ai pas encore pu tester de mon côté, je croise les doigts.
Deprecated: setcookie(): Passing null to parameter #5 ($domain) of type string is deprecated in /var/www/html/rss/index.php on line 5034
Avec PHP 8.2.7 (cli) (built: Jun 9 2023 19:37:27)
J'ai refait une modif : https://raw.githubusercontent.com/tontof/kriss_feed/master/src/index.php
Par contre est-ce que ça ne serait pas lié à ça ton problème, comment cela se fait-il que ton $domain
soit null ?
Je pense qu'il va falloir qu'on s'envoit des mails privés pour faire des tests d'affichage des retours serveurs $_SERVER['HTTP_HOST']
si ça ne fonctionne pas avec cette dernière modif.
Je ne vais pas crier victoire trop vite mais je n'ai plus d'erreur, ni de déconnexion en redémarrant firefox mobile...
Bon j'ai mis à jour en 8.22 et j'ai toujours de la déconnexion régulière. Merdoum.
Arf, après comme ce n'est pas spécifique à KrISS feed et que tu sembles avoir le même problème avec d'autres sites, j'imagine que c'est plus lié à ton navigateur, tu as essayé avec un autre navigateur ? Chromium ?
Ou ordi, téléphone, navigateur vérolé... Chercher mbam android avec votre MDR préféré.
Peut-être tester avec un autre appareil ;)
Bah, j'ai maintenant l'impression qu'il n'y a plus que ce site là qui déconne sur Firefox. J'ai fait un clean de cookies complet. Je veux bien essayer avec un autre navigateur, mais celui que j'utilise au quotidien, c'est Firefox. Peut-être une extension ?
Je viens de tester avec Safari, même problème de déconnexion. Est-ce que ça pourrait venir d'une modif côté serveur ?
@franck-tomek
Est-ce que ça pourrait venir d'une modif côté serveur ?
Ça peut arriver, pare-feu, watch dog, version de PHP...
Teste avec un autre hébergeur (si possible) et si ça fonctionne bien, vérifie les différences entre les 2 résultats donnés avec phpinfo();
Que dit le log serveur (ouvert sur un autre appareil) : a recharger lorsque tu ferme le navigateur et lorsque tu le ré-ouvre.
Il y a aussi php.ini
a vérifier (et peut-être le .htaccess
sur un apache)
Côté serveur, j'ai ajouté un plugin de mon côté avec ceci dedans. C'est juste un fichier sessions.php
dans un dossier plugins
à côté du fichier index.php
<?php
ini_set("session.cookie_lifetime", "31536000");
ini_set("session.gc_maxlifetime", '86400');
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'].'/sessions');
Peut-être en essayant de ne garder que les 2 premières lignes ini_set
dans un premier temps pour tester ?
Pour ma part, j'ai ça (depuis des années ^^):
<?php
ini_set("session.gc_maxlifetime", '86400');
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'].'/ses
sions');
Note: plus de problème pour ma part, je surveiller encore un peu le ticket mais risque de le fermer bientôt :D
KrISS feed charge automatiquement les fichiers dans le dossier plugins
@Nono-m0le : bonne nouvelle après une ouverture en août 2021 :-)
Je teste avec le plugin.
A priori, avec la dernière ligne et un répertoire sessions, ça roule.
Bizarre, je ne sais pas pourquoi mais tant mieux si ça marche. Il faudra penser à regarder ton dossier de sessions pour voir s'il ne grossit pas trop en nombre de fichiers. De mon côté je n'ai pas de soucis mais @Nono-m0le semble avoir des fichiers qui ne se suppriment pas tout seul
OK, je surveillerai.
J'ai mis un timeout assez élevé pour pas être déconnecté tous les jours sur mon instance (que je visite depuis plusieurs ordi/téléphone).
Hors, lors de la dernière migration, j'ai 'cleané' mon dossier /sessions/ et depuis, lorsque je me connecte sur mon téléphone, je suis déconnecté tous les jours et le "stay signed in" ne fonctionne pas.
Aurais-tu une solution ?