JSP validieren Benutzer kommt von der vorherigen Seite
In meiner JSP-webapp, die ich überprüfen möchten, dass ein Benutzer von einer bestimmten Seite von mir, http://myapplication.com/foo.jsp
. Auf der Seite tun, die überprüfung, die ich tun könnte:
String ref = request.getHeader("referer");
Dann vergleichen ref
zu http://myapplication.com/foo.jsp
Jedoch, diese überprüfung problemlos manipuliert werden können. Was sind einige andere Techniken, um sicherzustellen, dass ein client von einer URL erwartet?
Ich denke, das kommt vor in SO.
Dank
PR
InformationsquelleAutor praspa | 2011-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lassen preprocessing-servlet des ersten JSP generieren eines eindeutigen Tokens.
Speichern Sie diese in der Sitzung
Übergeben Sie es als hidden input-Wert in der form
oder als request-parameter den link, wenn Sie die Verwendung von links anstelle von Formen
Lassen preprocessing-servlet des zweiten JSP vergleichen es mit dem eines in der Sitzung
Wurde das grundlegende Konzept, das davon ausgeht, eine Seite-an-Seite Gespräch. Decken mehrere browser-Seiten/tabs, die Sie verwenden möchten
Set<String>
oder vielleichtMap<String, Set<String>>
als token anstelle (mit URIs als Schlüssel-und Token-Werte).InformationsquelleAutor BalusC
Der einzige Weg, um wirklich sicher zu gehen ist das speichern der "zuletzt besuchte Seite" in der Sitzung. So wird es nicht übertragen, um die client, oder möglicherweise gefälscht, indem Sie den Kopf einer Anfrage.
Die Idee ist, dass in der jsp zurückgegeben wird, aktualisiert sich die "zuletzt besuchte Seite" - Eigenschaft in der aktuellen Sitzung. Dann in den frühen Verarbeitung von einer Seite, eine überprüfung gegen die "letzten
besuchte Seite" - Eigenschaft aus.
Natürlich, dies funktioniert nicht zwischen web-Servern, wenn Sie so konfiguriert sind, teilen session-Informationen.
InformationsquelleAutor Edwin Buck