Il y a un mois, j'ai rencontré ce problème. J'ai d'abord pensé qu'il s'agissait d'une boîte à biscuits corrompue, car je pouvais nettoyer les biscuits et repartir.
Cependant, il est réapparu. Cette fois, j'ai passé une heure à le parcourir, à regarder ce qui était envoyé, à examiner ce que Safari renvoyait, et j'ai trouvé le problème.
Dans ce cas, j'avais un tableau de valeurs de cookies envoyé au navigateur après la connexion avant la redirection. Les valeurs ressemblaient à 'user id', 'user full name', 'some other id', etc.
(oui, les identifiants sont cryptés, donc pas de soucis)
Mon nom d'utilisateur complet se trouvait en fait dans un <lastname>, <firstname>
format.
Lorsque Safari a renvoyé le cookie au serveur, tout ce qui se trouvait après la virgule du nom de famille a été supprimé. Il ne renvoyait que les valeurs jusqu'à ce point.
Lorsque j'ai supprimé la virgule, le reste des valeurs a commencé à fonctionner correctement.
Il semble donc que si vous envoyez une valeur de cookie qui contient une virgule, Safari ne l'échappe pas correctement dans son stockage interne. Ce qui m'amène à penser que s'ils n'échappent pas correctement les virgules, il y a probablement des problèmes de sécurité dans le code de gestion des cookies de Safari.
Par ailleurs, ceci a été testé sur Win 7 x64 avec safari 4.0.5. J'ai également mis en place une page web à l'adresse suivante http://cookietest.livelyconsulting.com/ qui montre exactement ce problème. (J'ai supprimé ce site test)
IE, FF et chrome définissent tous correctement le cookie, ce qui n'est pas le cas de Safari.
2 votes
Je n'ai rien à ajouter, si ce n'est que le nom de domaine est le meilleur de tous les temps.
0 votes
Hehe, thx :) Peut-être que je le vendrai :)
0 votes
Peut-être pourriez-vous expliquer un peu la partie relative à l'installation des cookies. Par exemple : est-ce fait par un module complémentaire de Plone ou par un code personnalisé ?
0 votes
Le cookie est défini par mon code personnalisé. Il doit être mis en place lorsque vous entrez, pas sur 2much/entry. Dans le replay de la réponse, j'ai posté un peu de code.
0 votes
Jamais oublié, fonctionne sur /entry :) Merci !