Zrobilem sobie swoj wlasny mechanizm sesji i uwierzytelniania, z uzyciem bazy danych (MySQL). Gdy ktos chce skorzystac z mojego serwisu musi sie zalogowac, czyli podac nazwe uzytkownika, haslo i nazwe bazy danych z ktorej chce korzystac (to ostatnie to akurat sprawa "tematyki' mojego serwisu). Konta uzytkownikow i ich uprawnienia, a takze dane otwartych sesji sa zapisane w jednej "specjalnej" bazie danych.
Po podaniu odpowiednich danych rozpoczyna sie sesja, w odpowiednich tabelach w tej "specjalnej" bazie jest zapisywana nazwa zalogowanego uzytkownika, numer IP komputera z ktorego sie zalogowal oraz wygenerowany identyfikator, a takze aktualne zmienne sesji. Identyfikator sesji jest przekazywany miedzy skryptami poprzez GET'a, w URL'u. No i tu wlasnie moj problem/pytanie. Czy wedlug Was ta metoda (przekazywania sid'a) jest bezpieczna?
W kazdym skrypcie na samym poczatku pobieram z tablicy $_GET identyfikator sesji z URL'a i przekazuje go do funkcji ktora sprawdza jego "autentycznosc", czyli sprawdza czy w tabeli z danymi otwartych sesji istnieje rekord z danym sid'em a takze sprawdza czy numer IP z ktorego delikwent probuje uruchomic skrypt z podanym sid'em zgadza sie z numerem IP zapisanym w trakcie procesu logowania. Jesli ktos probuje uruchomic skrypt i wklepal recznie "jakos" zdobyty identyfikator sesji, ale numer IP kompa, z ktorego probuje uruchomic skrypt jest inny niz ten zapisany w tabeli o danych "legalnie otwartych" sesji no to ... stosowny komunikacik i koniec.
Czy wedlug Was to zabezpieczenie z numerem IP jest wystarczajace? Nie jestem ekspertem od metod atakow na serwisy www
