kkuubbaa88
28.06.2008, 16:57:36
witam
chcialbym sie dowiedziec po co przy logowaniu robi sie cos takiego jak unikatowy numer sesji ? po prostu przy zalogowaniu jest tworzony specjalny ciag znakow, ktory jest przypisywanych do zmiennej sesji... do czego on moze sluzyc ? czy nie wystarczy zamiescic w zmiennych danyc uzytkownika z bazy i sprawdzac czy sesja istnieje

czy tez lepiej jest stworzyc zmienna dodac ja do bazy, a potem za kazdym razem sprawdzac czy zmienna sesji rowna sie tej z bazy ? aby nikt sie nie mogl podszyc do sesje ?
l0ud
28.06.2008, 17:00:34
Przy logowaniu - utworzeniu sesji tworzy się jej identyfikator. Jest on wysyłany do przeglądarki w formie ciasteczka, albo przekazywany pomiędzy podstronami w adresie jeżeli cookies nie są akceptowane. Dzięki niemu serwer może odróżnić sesję użytkownika od innych. Nie da się używać sesji bez niego
kkuubbaa88
28.06.2008, 17:09:48
takie cos sie robi automatycznie ? czy sami tworzymy te cuda ?
.radex
28.06.2008, 17:14:53
Można zrobić cały system sesjii po swojemu, a można też użyć gotowych narzędzi - wtedy nie musimy się martwić wszystkim.
l0ud
28.06.2008, 17:15:59
Automatycznie - przy tworzeniu sesji przez session_start();
nitro18
28.06.2008, 17:42:25
Mam pytanie z innej beczki.
Używam po session_start() session_regenerate_id() co powoduje "przekopiowanie danych" do innego pliku sesji z innym identyfikatorem. Ale jak wejdzie powiedzmy 30 osób to mamy dużo plików sesji. Czy takie coś jest wydajne? Czy jeżeli dany plik sesji nie jest używany jest zastępowany przez inny w pliku temp serwera.
Skorzystałem z porady: Bełdzia:
http://www.beldzio.com/bezpieczenstwo-mechanizmu-sesji.freez
.radex
28.06.2008, 17:45:18
Dużo plików sesji? 30 plików sesji to bardzo mało. 1000 nie jest jakąś bardzo dużą ilością. 30 to tyle co nic.
kkuubbaa88
28.06.2008, 17:56:31
mi chodzi mniej wiecej o to, ze dodalem do kazdego uzytkownika pole sesja_id a w nim jest losowy ciag liter i liczb. i teraz pomimo tego, ze sprawdzam czy sesja istnieje rowniez na samym poczatku patrze czy wartosc ze zmiennej sesji jest taka sama jak wartosc w bazie danych jak tak to jest ok... jak nie to znaczy, ze ktos cos kombinuje... czy takie cos moze byc ? jest poprawne ? zbedne ?
.radex
28.06.2008, 18:05:22
Ale po co ci zapisywanie identyfikatora sesji, jeśli używasz gotowego, PHPowskiego systemu sesji?
kkuubbaa88
28.06.2008, 18:11:30
no do sprawdzenia czy zgadza sie z tym w bazie danych ?
nitro18
28.06.2008, 18:20:37
Cytat
Dużo plików sesji? 30 plików sesji to bardzo mało. 1000 nie jest jakąś bardzo dużą ilością. 30 to tyle co nic.
A kto mówi o 30. Ale co wtedy robi serwer z taką dużą ilością plików sesji.
.radex
28.06.2008, 19:46:08
kkuubbaa88 - to się zdecyduj - albo własny system sesji przy użyciu bazy danych, albo gotowy system z PHP. Nie widzę sensu mieszania obu sposobów.
nitro18 - jak to kto mówi o 30

? Ty sam

Cytat(nitro18)
Ale jak wejdzie powiedzmy 30 osób to mamy dużo plików sesji.
I to wcale nie jest duża ilość plików. A serwer sobie z tym poradzi.
nitro18
28.06.2008, 21:07:58
radex czytaj dokładnie powiedziałem 30 osób a nie 30 plików
.radex
28.06.2008, 21:15:55
jedna osoba == jedna sesja == jeden plik sesji.
Skończone sesje są sprzątane.
sobstel
28.06.2008, 22:44:59
Cytat(radex_p @ 28.06.2008, 22:15:55 )

jedna osoba == jedna sesja == jeden plik sesji.
jeśli używamy session_regenerate_id bez użycia argumentu (bool)true tj. session_regenerate_id(true) to plik ze starą sesją nie jest automatycznie kasowany (wtedy pliki się mnożą dopóki nie zostaną posprzątane przez gc, przy czym trzeba pamiętać, że to kiedy następuje sprzątanie z reguły zawsze jest obarczone pewną losowością).
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.