2016-08-05 3 views

Répondre

5

request.getRequestedSessionId() renverront l'identifiant de session spécifiée par le client (probablement dans un cookie). request.getSession().getId() renverra l'identifiant de session du serveur (si une session n'existe pas, request.getSession() le créera). La différence importante est que vous ne pouvez pas compter sur la valeur renvoyée par request.getRequestedSessionId(), car elle peut ne pas être valide. De la documentation:

Renvoie l'ID de session spécifié par le client. Cela peut ne pas être identique à l'ID de la session valide en cours pour cette requête. Si le client n'a pas spécifié d'ID de session, cette méthode renvoie null.

+0

Est-ce que tout serait possible en vérifiant s'ils correspondent ou non? – developerwjk

+0

Il est difficile de dire tbh. Peut-être que si vous compiliez des métriques sur la façon dont ces valeurs se comportent normalement, vous pourriez détecter des anomalies dans ce comportement, qui pourraient potentiellement être des attaques sur votre application. Mais c'est un gros quoi-si. – pablochan

+0

pourquoi l'ID de session du client peut ne pas être identique à l'ID de la session valide en cours pour cette demande? (En supposant que la session est toujours valide côté client) – srh