klejmaster
1.11.2011, 21:40:39
Witam,
jestem tutaj nowym. Ostatnio w ramach ćwiczeń tworzę sobie blog. Chciałem wprowadzić zabezpieczenie przed logowaniem się na to samo konto z dwóch różnych miejsc/przeglądarek w tym samym czasie.
Korzystam z CodeIgnitera i jego mechanizmu sesji w bazie danych. Niestety, sesje są dobre do sprawdzania użytkownika na jednym kompie w jednej przeglądarce i nie rozwiązują mojego problemu z blokadą wielokrotnego logowania się na to samo konto.
W jaki sposób można rozwiązać ten problem?
Pozdrawiam
Klejmaster
by_ikar
1.11.2011, 22:14:36
Nie wiem jak to rozwiązać w CI bo nigdy się nim nie bawiłem, nie mniej, polega to na utworzeniu w bazie danych tabeli która przechowuje jakby użytkowników online. Czyli ich id sesji + adres IP, dodać można tam jeszcze jakieś inne dane do porównania, jak chociażby user agenta.
klejmaster
2.11.2011, 09:40:33
CI tworzy dodatkową tabelę dla sesji, która zawiera pola:
session_id
ip_address
user_agent
last_activity
user_data
Dodatkowo mam tabelę users z danymi użytkownika (w tym unikalne ID użytkownika).
Zastanawiałem się w jaki sposób dzięki tym tabelom mogę zrobić zabezpieczenie o którym wspomniałem wcześniej.
wNogachSpisz
2.11.2011, 11:42:37
Dorzuć kolumnę user_id i sprawdzaj przy logowaniu czy aktywna sesja dla tego uzytkownika istnieje.
Proste jak drut.
klejmaster
2.11.2011, 11:45:18
dzięki wielkie za sugestię
przetestuję ją, bo dotychczas ID użytkownika trzymałem w formacie JSON w kolumnie user_data, ale jakoś dziwnie się wyciągało z tego
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.