Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Logowanie + sesja + baza
Forum PHP.pl > Forum > PHP
windman
Witam,

Obecnie używam bardzo prostego skryptu autoryzacji, opartego tylko na sesji.
Chciałbym rozbudować skrypt (aby stał się bardzi bezpieczny ;-) i chciałbym się poradzić, czy to co planuję będzie bezpieczne.

To co chcę "dobudować":
a) chcę sprawdzać, czy podczas trwania sesji przypadkiem nie zmieniła się lokalizacja użytkownika
b ) chę ograniczyć czas trwania sesji

Rozwiązanie:
ad a) Podczas logowania do bazy zapisany zostanie IP, a następnie przy każdym odświeżeniu strony sprawdzany, gdy IP będzie inny, sesja zostanie zniszczona. Czy poza IP warto jeszcze coś zapisywać? Czy to nie obciąża zbytno bazy?
ad b ) do bazy zostanie zapisana data i godzina wykonania (załadowania, odświeżenia) skryptu, jeżeli przez 30 minut skrypt nie zostanie odświeżony to sesja zostanie zniszczona.

Pytania:
- Czy punkt a. zabezpiecza mi skrypt przed przejęciem sesji?
- Do bazy będę zapisywał ID sesji i sprawdzał przy każdym odświeżeniu skryptu, czy warto także weryfikować ID sesji w cookies?
- Słyszałem coś o odświeżaniu ID sesji przy każdym załadowaniu skryptu... co mi to daje?
- Co podobny skrypt powinien jeszcze zawierać?

Czy to co planuję ma sens?
Jak już wspomniałem autoryzacją mało się zajmowałem.... proszę o uwagi, sugestie itp.

Pozdrawiam
TrevorGryffits
Hmm... Mam nadzieję, że pomogę.
Primo:
Ad ad a) Poza IP warto jeszcze zapisywać USER_AGENT użytkownika. Czy to zbytnio nie obciąża... W każdym razie wiele skryptów wykorzystuje ten sposób do używania sesji.
Secundo:
Ad 1) Na pewno zdecydowanie ją utrudnia. Z tego co wiem pełne 100% zabezpieczenie przed przejęciem sesji i/lub innymi wrogimi zamiarami wobec niej jest trudne i wymagające ingerencji w Apacha.
Ad 2) Hm? ID przecież będzie się samo weryfikowało:) Skądś musisz pobrać ID sesji, żeby potem ją wyszukać w bazie.
Ad 3) Załóżmy, że mamy dwóch użytkowników: A(dobry) i B(EVIL!). Użytkownik A dostaje identyfikator sesji, np. 127843265. Następnie w jakiś sposób przejmuje go B. I może go wykorzystać tylko do czasu gdy A nie przejdzie do kolejnej strony, bo wtedy A dostanie nowy identyfikator i stary przestanie być ważny. Mam nadzieję, że w miarę zrozumiale.

Chyba wszystko dobrze. Mam taką nadzieję;)
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.