2016-08-05 60 views

Antwort

5

request.getRequestedSessionId() wird die Session-ID durch den Client angegeben zurückgeben (vermutlich in einem Cookie). request.getSession().getId() kehrt die Session-ID des Servers (wenn eine Session nicht existiert, request.getSession() wird es schaffen).

Der wesentliche Unterschied ist, dass Sie nicht auf den Wert von request.getRequestedSessionId() zurück verlassen können, da sie nicht gültig sein kann. Aus der Dokumentation:

Gibt die Sitzungs-ID zurück, die vom Client angegeben wurde. Dies stimmt möglicherweise nicht mit der ID der aktuell gültigen Sitzung für diese Anfrage überein. Wenn der Client keine Sitzungs-ID angegeben hat, gibt diese Methode null zurück.

+0

Kann irgendetwas erreicht werden, indem überprüft wird, ob sie übereinstimmen oder nicht? – developerwjk

+0

Es ist schwer zu sagen tbh. Wenn Sie Messwerte zum normalen Verhalten dieser Werte gesammelt haben, könnten Sie möglicherweise Anomalien in diesem Verhalten erkennen, die möglicherweise Angriffe auf Ihre Anwendung darstellen. Aber das ist ein großes Was-wäre-wenn. – pablochan

+0

Warum Sitzungs-ID des Clients möglicherweise nicht identisch mit der ID der aktuellen gültigen Sitzung für diese Anforderung? (Angenommen, die Sitzung ist noch auf der Client-Seite gültig) – srh