comment puis-je faire des sessions en java si on désactive les cookies dans mon navigateur?
Je voudrais savoir si quelqu'un désactive les cookies dans mon navigateur les cookies ne fonctionnent pas pour mon navigateur alors comment puis-je faire des sessions en java. Je suis en train d'écrire des servlets pour la programmation côté serveur.
Alors comment mes séances de travail? Comment est-il reconnaître l'utilisateur? Comme JSESSION ID est stocké dans les cookies...
Il existe différentes méthodes, comme certaines réponses montrent. Une question importante est celle - Comment sécuriser devrait-il être? Si c'est un blog, pas très. Si c'est des services bancaires, un beaucoup plus. Qui influence réellement la solution.
Il n'y a pas de diverses méthodes. Il n'y a qu'une méthode: encoder/réécrire l'URL à inclure (une sorte de) ID de session. Il n'y a pas d'autres moyens. C'est assez sûr, aussi longtemps que vous n'avez pas de fuite de l'URL à d'autres. Pour la banque, vous pouvez toujours ajouter un plus vérifier à l'aide de la
Sommes-nous toujours en s'appuyant sur ces techniques de réécriture des URL ou des Biscuits?
Il n'y a pas de diverses méthodes. Il n'y a qu'une méthode: encoder/réécrire l'URL à inclure (une sorte de) ID de session. Il n'y a pas d'autres moyens. C'est assez sûr, aussi longtemps que vous n'avez pas de fuite de l'URL à d'autres. Pour la banque, vous pouvez toujours ajouter un plus vérifier à l'aide de la
user-agent
et/ou remote-attr
en-têtes et de les relier à une session particulière.Sommes-nous toujours en s'appuyant sur ces techniques de réécriture des URL ou des Biscuits?
OriginalL'auteur giri | 2010-01-14
Vous devez vous connecter pour publier un commentaire.
Voir HttpServletResponse encodeURL() et encodeRedirectURL().
Ces fonctions réécrire vos URLs de manière appropriée afin d'inclure les informations de session si le navigateur ne prend pas en charge les cookies. Selon ce framework web Java que vous utilisez, ces fonctions peuvent être appelées automatiquement (aussi longtemps que vous utilisez le cadre de méthodes pour l'écriture d'Url).
Noter que cela peut ne pas être souhaitable dans tous les cas, en raison de la sécurité et de la mise en cache des implications de la prise de l'ID de session visible dans les liens. Cette page résume les questions beaucoup mieux que je le peux, dans ce court espace, et fournit un moyen de désactiver cette fonctionnalité.
OriginalL'auteur ZoogieZork
Vous devez ajouter le
jsessionid
à toutes les URL de votre implication dans votre webapplication qui sont censés être invoquée par l' client. Cela comprend la redirection d'URL et les liens dans la page JSP.Dans le cas d'une URL de redirection, vous devez utiliser
HttpServletResponse#encodeRedirectURL()
première:En cas de liens dans une page JSP, vous avez besoin de passer l'URL est à travers
HttpServletResponse#encodeURL()
premier. Vous pouvez le faire avec l'aide de JSTLs '(il suffit de déposer jstl-1.2.jar dans/WEB-INF
)<c:url>
le tag derrière les coulisses passer l'URL par celle de ladite méthode:OriginalL'auteur BalusC
Si les cookies sont désactivés, vous pouvez toujours maintenir des sessions de l'envoi de la valeur de JSESSIONID comme un paramètre de requête, comme:
Gardez à l'esprit que si la sécurité est la principale préoccupation, alors vous ne voulez pas utiliser cette approche, car elle met l'id de session à droite dans l'url.
OriginalL'auteur danben
De référence, il est bon de savoir que le html5 introduit
sessionStorage
dans le cadre de De Stockage Web. Il y a un bon article sur 24ways.org introduction: Briser Les Bords du Navigateur.Support:
localStorage
)HTML5 (y compris la prochaine génération des ajouts en développement)
Comme vous pouvez le lire dans bugzilla.mozilla.org/show_bug.cgi?id=341524 les navigateurs déjà peut désactiver les stockages automatiquement lorsque les cookies sont désactivés.
OriginalL'auteur Gregory Pakosz
Si les cookies sont désactivés, la plupart session fournisseurs d'ajouter un paramètre de l'URL appelée JSESSIONID pour maintenir l'état de session
OriginalL'auteur Kevin
Comme d'autres l'ont mentionné, vous conteneur de servlet, par exemple, tomcat, automatiquement les stations de mettre le JSESSIONID dans l'url si le navigateur n'autorise pas les cookies. Il est configurable dans tomcat, comme vous pouvez le voir dans cette réponse.
Mon conseil est que vous suffit de l'essayer. Prenez votre application web, comme c'est maintenant, sans modification, et de l'exécuter dans votre navigateur les cookies désactivés, et voir ce qui se passe.
cookies="false"
sera désactiver définitivement l'utilisation de cookies pour maintenir la session et il sera pas réécrire automatiquement l'URL pour chaque demande. Il le fera uniquement pour les classiques des demandes (et donc pas pour les requêtes POST). Et encore ensuite, vous avez à changer tous les liens dans votre page pour y inclure la réécriture d'URL.OriginalL'auteur Yoni
Autres réponses sont grands, je n'ai pas besoin de répéter ce que. Mais j'ai quelques commentaires supplémentaires.
Merci de ne pas mettre les données de session (session complète) dans un cookie, mais seulement un id de session, éventuellement haché. Il est beaucoup trop facile pour les gens à modifier le contenu d'un cookie. Laisser les données de session sur le serveur; peut-être à une base de données si vous avez beaucoup d'utilisateurs simultanés ou des séances de vivre très longtemps.
Même si l'id de la session en elle-même est très précieux, vous pouvez même le mettre dans un paramètre POST, empêchant ainsi qu'il se retrouve dans l'URL elle-même.
OriginalL'auteur extraneon
Oeil à la norme taglibs JSP pages, notamment la
<c:url>
tag.http://onjava.com/pub/a/pub/a/onjava/2002/05/08/jstl.html?page=2
Je crois qu'il gère aussi l'jsession-id de l'attribut si les cookies ne sont pas disponibles.
OriginalL'auteur Thorbjørn Ravn Andersen