Rechten in een sessie
Ik heb een loginsysteem gemaakt, waarbij ik bepaalde gegevens in een sessie stopt. (mijn sessie-handler slaagt de sessie overigens op in de database)
Een van die zaken die ik in de sessie stop is de rechten van een gebruiker. Verder controleer ik op elke (beveiligde) pagina door middel van een hash of de sessie niet vervalst is. Dus stel dat de hacker in staat is een gegeven te manipuleren in de sessie, zou dit moeten tegengehouden worden.
Wat ik me echter afvraag of het wel veilig is de rechten van een gebruiker in de sessie te stoppen. Stel dat de hacker de sessie toch zou kunnen vervalsen, is dit namelijk een enorm veiligheidslek. Langs de andere kant, als ik de rechten telkens uit de database haal, kost dit een extra query + de database kan ook altijd gehacked worden. (en dus de rechten aangepast worden)
Wat is jullie meningen hierover?
Dan zou de hacker toch ook in staat zijn de sessie id te vervalsen? ;p
Die ene (extra) query merk je niet (bij een goed datamodel).
1= gast
2=member
3=admin
En dan als de rank = 1 dan dit laten zien rank 2 = dit enz
( was maar een voorbeeld )
Toevoeging op 12/03/2011 14:11:31:
@kumkwat sessies worden opgeslagen op de server niet op de client zelf
In principe wel. Maar, je kan het de hacker maar best zo moeilijk mogelijk maken lijkt mij.
@Obelix
Ja, maar heb je daarvoor ook opbouwende mening waarom je toch voor een query zou kiezen?
@Jordi
Sowieso komen de rechten uit de database, bij het inloggen haal ik deze eruit. De vraag is alleen of het verstandig is ze op te slaan in de sessie. En dus het misschien een beter idee is het steeds uit de database te halen (op andere pagina's)
Tevens heb je gelijk als je zegt dat sessies server-side zijn. Toch is een goede hacker in staat die te vervalsen.