Czytałem, że struktura gry rozwiązuje problem związany z naprawą sesji przez mieszanie identyfikatora sesji z kluczem aplikacji, ale czy zapewnia on dowolny mechanizm zapobiegający przejmowaniu sesji lub czy jest on pozostawiony do implementatora?Czy grasz! framework ma wbudowany mechanizm zapobiegający przechwytywaniu sesji?
Odpowiedz
Dokumentacja odtwarzania ma dobrą sekcję poświęconą zabezpieczeniom, więc zamiast powielać, tutaj jest link - http://www.playframework.org/documentation/1.2.4/security.
Obejmuje
- XSS
- SQL Injection
- bezpieczeństwo Sesja
- Cross Site Request Fałszerstwo
Niektóre trzeba realizować siebie, inni nie.
Twoje szczegółowe pytanie dotyczące przechwytywania sesji jest automatyczne.
Sesja jest hashem kluczy/wartości, podpisana, ale nie zaszyfrowana. To oznacza, że dopóki twój sekret jest bezpieczny, nie jest możliwe, aby trzecia strona utworzyła sesje.
Dzięki za odpowiedź. Naprawdę nie widzę, jak zawężanie kluczowych wartości i podpisywanie go kluczem aplikacji zapobiega kradzieży plików cookie i ich używaniu. Być może czegoś brakuje? – marchaos
ponieważ, jeśli ktoś nim manipuluje, nie zna skrótu, więc wartość skrótu staje się nieważna, a Play wie, że sesja została unieważniona. – Codemwnci
Co zrobić, jeśli się z tym nie manipulują. Jeśli powącham plik cookie i nie zmieniam żadnych wartości w nim zawartych, to z pewnością, ponieważ wartość skrótu jest nadal ważna (zakładając, że jest ona przechowywana w pliku cookie), mogę uwierzytelnić za pomocą wartości. – marchaos
Nie, nie ma wbudowanych w celu uniemożliwienia porwania sesji, gdy tylko będzie można przechwycić plik cookie sesji (przez wąchanie/człowiek w środku). Istnieje kilka sposobów, aby utrudnić, np:
- HTTPS tylko
- ustawienia application.session.httpOnly w application.conf
One approache aby utrudnić jest: - przechowaj plik ip/user-agent/rozdzielczość/inne elementy lub skrót tego również w sesji. W kontrolerze sprawdź, czy użytkownik, który uzyskuje dostęp do witryny, nadal odtwarza ten sam skrót ... jedyny prawdziwy problem jest z osobami, które używają proxy, które np zmienia IP w locie z powodu klastrowania.
mały trick można spróbować użyć: (działa tylko w najnowszych przeglądarkach) Kiedy użytkownik loguje się, przechowywać kilka rzeczy w HTML5 pamięci lokalnej. Zmodyfikuj połączenia Ajax, aby dostarczyć te informacje z lokalnego magazynu. Jeśli brakuje informacji/jest ona nieważna, możesz unieważnić całą sesję. Musisz jednak upewnić się, że kontrole zostaną zastosowane tylko wobec żądań z przeglądarek HTML5.
mam nadzieję, że to trochę pomaga.
Przechowywanie ip i klienta użytkownika jest złym pomysłem. Zobacz http://stackoverflow.com/questions/969330/including-user-ip-addr-for-hash-cookie-value-bad-idea – marchaos
jesteś adresami linków, które powiedziałem z "jedynym rzeczywistym problemem jest z ludzie używający proxy, który np. zmienia IP w locie z powodu klastrowania. " Nie ma nic przeciwko przechowywaniu hasza agenta użytkownika, ponieważ jeśli to zmieni się podczas sesji, sesja została przejęta. Wszystko zależy od tego, ile energii chcesz w to włożyć i czy naprawdę jest tego warte. Zmiana/usunięcie danych wrażliwych powinna zawsze być możliwa tylko za pośrednictwem protokołu SSL i podania hasła. –
- 1. Jak skonfigurować mechanizm autoryzacji wbudowany w boto3
- 2. Czy PHP ma wbudowany optymalizator?
- 3. Czy MFC ma wbudowany układ sterowania siatką?
- 4. Anulowano logowanie w Mediawiki, aby zapobiec przechwytywaniu sesji
- 5. Czy SAS ma wbudowany, czy funkcja lub potrójny operator?
- 6. Czy Python ma podobny mechanizm kontroli do CountDownLatch Java?
- 7. Czy Nginx ma oddzielny mechanizm kolejkowania dla żądań?
- 8. Czy .NET ma wbudowany IEnumerable dla wielu kolekcji?
- 9. Samoobsługowy kod zapobiegający zadaniom drukowania
- 10. Spring Framework 3 i atrybuty sesji
- 11. Czy groovy zapewnia mechanizm włączania?
- 12. Czy potrzebny jest mechanizm Class.forName()?
- 13. wbudowany serwer php wbudowany buforowanie numer
- 14. Czy istnieje sposób zapobiegający zamykaniu AlertDialog przy nieprawidłowych danych wejściowych?
- 15. Czy AutoFixture ma mechanizm sprawdzania, czy metody, które zwracają jakąkolwiek listę, nigdy nie zwracają wartości null?
- 16. Mechanizm Unboxingu
- 17. Standardowy mechanizm ma opcje specyficzne dla pakietu w R?
- 18. zapobiec przechwytywaniu ekranu w aplikacjach na Androida
- 19. Jak zapobiec przechwytywaniu sesji, po prostu kopiując plik cookie z komputera na inny?
- 20. Czy OpenMP obsługuje mechanizm kradzieży pracy?
- 21. Czy log4j udostępnia dowolny mechanizm dziennego archiwum?
- 22. Czy wzór repozytorium ma być używany tylko z Entity Framework?
- 23. Co jeśli tag skryptu ma zarówno "src" i wbudowany skrypt?
- 24. Dlaczego wbudowany blok łańcucha w Ruby ma nazwę "eos"?
- 25. Znacznik HTML zapobiegający uruchamianiu znaczników HTML?
- 26. Mechanizm wiązania iniekcji automatycznej
- 27. Jak przywrócić wbudowany przeze mnie przypadek?
- 28. Czy Stata ma jakiś mechanizm `try and catch` podobny do Java?
- 29. Czy javascript może być wbudowany w WebPacka?
- 30. Czy Railsy mają wbudowany system uwierzytelniania?
Do tej pory mam odpowiedź "tak" i "nie", więc istnieją tu oczywiście sprzeczne informacje. – marchaos
Nadal czuję, że to pytanie jest bez odpowiedzi, ale niestety muszę przyznać nagrodę w każdym przypadku. Jeśli ktoś mógłby odpowiedzieć definitywną odpowiedzią, byłoby wspaniale. – marchaos