![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 650 Pomógł: 16 Dołączył: 5.07.2010 Skąd: Ściśle Tajne Ostrzeżenie: (0%) ![]() ![]() |
Witam, stworzyłem baze danych o nazwie "Session", w której dodałem kolumny:
id - liczba porządkowa auto increment, name - nazwa sesji times - ostatni czas wykonywania działań filename - plik w którym się znajdujemy (index.php, config.php) user - id użytkownika (0 - gość, powyższe liczby to identyfikatory konta) ip - ip na którym została utworzona sesja. I napisałem kod PHP:
TimeSession:
Działanie kodu wygląda następująco. Na początku skrypt usuwa stare sesje gdzie czas przekroczył dozwolony limit trwania sesji (czas ustawiony przez administratora). Następnie skrypt pobiera nazwę sesji oraz ip od użytkownika, po czym sprawdza czy istnieje sesja w bazie danych z pobranymi parametrami (ip oraz nazwa sesji). Jeżeli nie istnieje taka sesja to tworzy taką sesje w bazie danych, jeżeli jednak istnieje to przydziela identyfikator który został wpisany do bazy. Początkowo user nie jest zalogowany przez co $sess['user'] wynosi 0, dlatego podczas poprawnego logowania następuje update tabeli "user" na identyfikator konta z pasującym loginem i hasłem wpisanym przez użytkownika. I tutaj pytanie mam do doświadczonych użytkowników: czy moje główkowanie w celu zabezpieczenia się przed Session Hijacking da jakiś odpowiedni skutek, czy napisałem niepotrzebne pobieranie sesji z bazy danych? Ten post edytował Jonek_1993 23.11.2013, 11:26:05 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
I przy każdej akcji użytkownika robisz SELECT do bazy danych? Prościej i wydajniej przecież zapisywać takie info w cookies np i porównywać, jedno zapytanie do bazy mniej. Ale jeśli szukasz hiper super bezpiecznego zabezpieczenia przed przejęciem sesji lub i tak pobierasz info, gdzie użytkownik się ostatnio znajdował, jaki czas temu itd., to jest ok. Pamiętaj, że IP zawsze można sobie ustawić na jaki się chce, więc porównywanie tylko IP to za mało.
Ten post edytował Damonsson 23.11.2013, 12:16:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 08:24 |