Potrzebuję zapobiec Session Fixation, określonego rodzaju przechwytywania sesji, w aplikacji sieci web Java działa w JBoss. Jednak wydaje się, że standardowy idiom doesn't work in JBoss. Czy to może zadziałać?Rozwiązywanie Fixation sesji w JBoss
Odpowiedz
This defect (znaleziono here) wskazuje drogę do rozwiązania. Instancja Tomcat działająca w JBoss jest skonfigurowana z opcją emptySessionPath = "true", a nie "false", która jest domyślna. Można to zmienić w .../deploy/jboss-web.deployer/server.xml
; oba złącza HTTP i AJP mają tę opcję.
Sama funkcja służy do eliminacji ścieżki kontekstowej (np. "Foo" w http://example.com/foo) z pliku cookie JSESSIONID. Ustawienie na wartość false spowoduje złamanie aplikacji opartych na uwierzytelnianiu z użyciem wielu aplikacji, co obejmuje elementy zbudowane przy użyciu niektórych frameworków portalu. Nie wpłynęło to jednak negatywnie na daną aplikację.
Ten problem i specyficzny przypadek, w którym występuje, jest problemem zarówno w Tomcat, jak i JBoss. Tomcat współużytkuje efekt emptySessionPath = "true" (a właściwie JBoss dziedziczy go z Tomcat).
To naprawdę wygląda na błąd w Tomcat i JBoss, gdy próbujesz zapobiec atakom związanym z sesją, ale specyfikacja serwletu (przynajmniej wersja 2.3) nie wymaga zdefiniowania lub ponownego zdefiniowania JSESSIONID zgodnie z jakąkolwiek określoną logiką. Być może zostało to wyczyszczone w późniejszych wersjach.
Jednym z obejść jest przechowywanie adresu klienta w sesji. Opakowanie odpowiedzi powinno sprawdzać, czy adres klienta ustawiony w sesji jest taki sam, jak adres dostępu do sesji.
Twoja sugestia jest przydatna do ogólnego przejmowania sesji, ale nie odnosi się konkretnie do naprawy sesji. –
Znalazłem poniższy fragment kodu kodu z jednego z czterech elementów. I dodałem poniżej linie. Ale kiedy drukuję identyfikator sesji po i przed zalogowaniem się do aplikacji, to jest to samo. Jak mogę przetestować utrwalenie sesji?
D: \ jboss-5.1.0.GA \ bin \ run.cof plik i dodaj poniższą linię. zestaw "JAVA_OPTS =% JAVA_OPTS% -Dorg.apache.catalina.connector.Request.SESSION_ID_CHECK = false"
w każdym context.xml z JBoss aplikacji. D: \ jboss-5.1.0.GA \ server \ default \ deploy \ jbossweb.sar \ context.xml
- 1. Session Fixation - Uwierzytelnianie formularza
- 2. JBoss Session Timeout
- 3. Rozwiązywanie konfliktów w git
- 4. Obsługa sesji wygasła w aplikacji sieciowej JSF, działającej w języku JBoss AS 5
- 5. Debugowanie JBoss w Eclipse
- 6. Klasy ładowania w JBoss
- 7. Znaczenie wszystkich nazw JNDI w JBoss 7
- 8. Tworzenie dwóch puli wątków dla asynchronicznych metod bean sesji w JBoss EAP6?
- 9. Rozwiązywanie równań wielomianowych w Pythonie
- 10. Rozwiązywanie nagich trików w Sudoku
- 11. Numeryczne rozwiązywanie ODE w Pythonie
- 12. Rozwiązywanie problemów w języku C#
- 13. jak zmienić identyfikator sesji po zalogowaniu w asp.net
- 14. Tworzenie modułu w JBoss AS
- 15. Uaktualnienie wersji Hibernate w JBOSS
- 16. Wersja Tomcat w ramach JBoss?
- 17. Rozwiązywanie problemu "redukcji strun"
- 18. Rozwiązywanie konfliktów łączenia
- 19. Rozwiązywanie problemów Python sys.path
- 20. Rozwiązywanie algorytmu redukcji ciągu
- 21. Rozwiązywanie równania liniowego
- 22. Rozwiązywanie zależności kołowych
- 23. Rozwiązywanie Integer Knapsack
- 24. Rozwiązywanie problemów ERROR_NOT_ENOUGH_MEMORY
- 25. Rozwiązywanie Kakuro puzzle
- 26. Rozwiązywanie konfliktów GITHUB
- 27. Szybkie rozwiązywanie anagramów
- 28. j2objc - rozwiązywanie typów obiektów
- 29. Czy warto zaktualizować JBoss 7.1 z JBoss 5.1?
- 30. Uruchamianie JBoss z Eclipse
pracuję z JBoss 6.1 i po prostu hit tego problemu. W moim pliku server.xml nie ma opcji emptySessionPath. Jak to zrobić w wersji 6.1? –
Jeśli ktoś jeszcze jest zainteresowany, znalazłem rozwiązanie. Poszukaj odpowiedzi @ Rp- w tym wątku: http://stackoverflow.com/questions/11028145/listening-for-login-events-in-jboss-as-6 –