2016-12-23 15 views
0

In unserem Projekt verwenden wir Weblogic Server.Verwenden Sie die gleiche Jsession ID, um sich an einem anderen Computer anzumelden

Wenn ich versuche, in unsere Anwendung, dh auf Maschine A anmelden, ein JSESSIONID erzeugt wird, nachdem ich angemeldet.

Nun, wenn ich diese gleiche JSESSIONID auf einer anderen Maschine dh Maschine B der Anwendung wird mich auffordern, Startseite statt Login-Seite.

Bitte geben Sie eine Lösung für mein Problem.

+0

Ich denke, Sie versuchen zu verhindern, dass Hacker eine gestohlene SessionID verwenden, um in Ihre Web App zu gelangen. Sie können versuchen, Benutzer anhand ihrer IP-Adresse oder eines anderen Parameters zu identifizieren. Wenn ein Benutzer dieselbe Sitzungs-ID, aber eine andere IP-Adresse verwendet, können Sie die Sitzung zerstören. Natürlich ist es nicht 100% narrensicher – Bassam

Antwort

0

Wenn nicht anders konfiguriert, zerstören die meisten Server alle JSessionIDs, die nicht erkannt werden, und geben eine neue aus. Dies verhindert Session Fixation-Angriffe. Java Servlet Engines wie Tomcat und Jetty tun dies ebenso wie verschiedene j2EE Application Server wie WildFly (UnderTow) und WebLogic.

Wenn Sie eine Sitzungsmigration zwischen Serverknoten durchführen möchten, müssen Sie Ihren Server dafür konfigurieren. Servlet-Engines und Anwendungsserver tun dies nicht automatisch. Sie müssen in Ihren Weblogic-Dokumenten nach Ihrer Version Ihres Anwendungsservers suchen, um zu ermitteln, wie Sie vorgehen müssen.

Ich werde Ihnen sagen, dass Wildfly und Tomcat definitiv erfordern Multicast-IP, um diese Arbeit zu machen. Abhängig von Ihrer Umgebung ist es möglich, dass Multicast-IP von Firewalls blockiert wird. Außerdem weiß ich zum Zeitpunkt des Schreibens, dass Docker-Container die Multicast-IP nicht standardmäßig unterstützen, so dass Sie bei der Verwendung von Docker-Containern eine Art Workaround benötigen.

Die wichtige Sache ist, dass Sie verstehen, warum die Sitzung nicht automatisch migriert wird und dass Sie Ihren Server dafür konfigurieren müssen. Wenn Weblogic Multicast-IP verwendet, könnte dies eine weitere Hürde sein, die es zu überwinden gilt.

Ich hoffe, das hilft. Dies ist so spezifisch wie ich sein kann, da ich kein Weblogic-Entwickler bin.

+0

Danke für Ihre Antwort. Aber ich habe alle Konfigurationen auf JSessionID in Weblogic-Server versucht. Aber es gibt immer noch etwas, worüber ich es aussortieren sollte. – Ezazul

+0

Ok, finde heraus, wie Weblogic die JSessionID überträgt. Das ist wichtig. Verwendet es Multicast-IP? Wenn ja, könnte das Problem sein.Dies wird in diesem Fall DevOps beinhalten. – sagneta

0

Was Sie angegeben haben, heißt session hijacking. Es gibt viele gute Antworten darauf, wie man es verhindern kann.

Prevent session from being replicated when JSESSIONID cookie copied

What is the best way to prevent session hijacking?

HTTP ist ein zustandsloses Protokoll verwendet eine Sitzungs-Kennung (meist ein Cookie), die mit jeder Anforderung gesendet wird, die den Client zu identifizieren. Die gebräuchlichste Methode besteht darin, HTTPS zu verwenden, um Ihre Anfrage zu verschlüsseln und zu verhindern, dass jemand in der Mitte diese Sitzungskennung sieht.

Ein wichtiger Punkt, den Sie beachten sollten, ist, dass der Angreifer, wenn er physischen Zugriff auf Ihre Maschine hat, Ihre Sitzungskennung leicht sehen kann und Sie nichts dagegen tun können. Das ist der Grund, warum Websites wie Facebook Sie warnen, wenn Sie die Browser-Konsole öffnen und einige Skripte ausführen.

Verwandte Themen