Przywileje uzyszkodnikow

0

Mam tabele MYSQL z rangami, kazda ranga ma kolumne z przywilejem np.

ranga - testrank
id - 0
pisanie na shoutboxie - false
dodawanie newsow - false

Kazdy uzyszkodnik ma przypisana range w tabeli users,

uzyszkodnik_id 1
email [email protected]
rank_id 0

Teraz pytanie, jak sprawdzac/przechowywac przywileje rang?

Myslalem nad $_SESSION, kazda ranga miala by wartosc w sesji TRUE/FALSE i podczas otwierania strony/pisania na czacie wystarczylo by sprawdzic sesje czy uzyszkodnik moze otworzyc strone/pisac na czacie, ale sesje chyba mozna latwo zhaxowac?

A ciagle wysylanie zapytan do bazy danych o wartosc np 'pisanie na shoutboxie' przy kazdym ladowaniu strony niepotrzebnie obciazylo by server?

0

Nadpisanie danych do sesji nie jest proste, jedynie na współdzielonym serwerze dałoby się coś zdziałać:

http://en.wikipedia.org/wiki/Session_poisoning

Ostatnie zależy od usługodawcy, reszta zależy od Ciebie, ale podanymi sposobami można zepsuć nie tylko sesje.

0

Jesli nie sesja to jak mam sprawdzac czy uzyszkodnik moze np pisac na czacie?

0

Jeżeli jest zalogowany i masz dostęp do jego id, loginu czy cokolwiek, to każdorazowo, przy ładowaniu strony, sprawdzasz jego uprawnienia w bazie. Chyba że źle rozumiem pytanie :)

0

Ja nie napisałem, że masz unikać sesji. Ba, ja zaznaczyłem, że jak ktoś jest dupa nie programista to mu można nadpisać zmienne bieżące, nie tylko sesyjne - częściowo tymi samymi metodami. Używaj sesji. Po prostu kodź dobrze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1