Ich frage mich, ob ServletResponse.reset()
der zusätzliche Schritt ist, den ich nicht angemeldeten Benutzern vom Zugriff auf Servlets blockieren muss, oder wenn es Risiken oder Nachteile gibt.Ist ServletResponse.reset() eine praktikable Möglichkeit, nicht autorisierte (ausgeloggte) Benutzer daran zu hindern, auf Servlets zuzugreifen?
Hintergrund:
Die Art und Weise my website Arbeiten, zunächst können die Benutzer sehen nur bestimmte Seiten, nachdem sie ein Konto und melden Sie sich mit diesen Anmeldeinformationen erstellen. Das Problem, das ich anfangs hatte, war, obwohl ich session.invalidate()
nutzte, wenn ein Benutzer abgemeldet wurde, konnte er die Anfrage erneut senden (zum Beispiel über den Zurück-Button) und war in der Lage, aus dem nicht autorisierten Zustand auf eingeschränkte Inhalte zuzugreifen. Angenommen, die Sitzung ist abgelaufen, wie oben, bin ich nicht sicher, wie das überhaupt möglich ist oder was richtig getan werden kann, um es zu verhindern.
Durch Experimentieren als Behelfslösung, habe ich versucht, ServletResponse.reset()
, und dass schien es zu lösen, aber ich verstehe nicht, warum es funktioniert, und deshalb bin ich mir nicht sicher, dass es eine robuste tragfähige Lösung ist.
Meine spezifischen Fragen sind:
Ist das Zurücksetzen den Antwortpuffers (einschließlich Header und HTTP-Statuscode) eine sichere oder empfohlenen Praxis, oder gibt es einen besseren Weg, es zu tun?
Wie kann ich mich mit dem Sitzungsobjekt anmelden und nicht mit einem Sitzungscookie?