Sessions te beinvloeden door hackers
Ik ben bezig met een inlogsysteem. Ik schrijf in een session de gebruikersnaam weg. Ik vroeg me echter af, is het voor een hacker mogelijk om een session aan te passen? Dus dat hij bijvoorbeeld zelf een account maakt, daar mee inlogt en dan de gebruikersnaam in de session aanpast?
Mijn 2e vraag is, is het veilig om de rang (toegangsniveau) weg te schrijven in een session, of is het veiliger dat steeds weer uit de database te halen?
Matthijs
Ja een sessie kan gehacked worden, echter raad ik nooit aan om een inlognaam erin te zetten. Maak gebruik van unieke 'screen names' die we hier ook hebben. Hier log je in met je email, maar er staat Matthijs Vos ipv je loginnaam.
Met screennames kan niet ingelogd worden, endus verkom je dat een bruteforce op deze manier werkt.
Tevens kun je het toegangsniveau wel in een sessie zetten, anders moet je met elke beveiligde site een query draaien om te kijken wat zijn toegangsniveau is.
Bedankt voor je snelle reactie. Maar als ik nu in mijn session de 'screen name' zet kan een hacker die dus ook aanpassen toch? Dan logt de hacker in op 'Matthijs Vos', past het aan naar 'Chris NVT' en hij zit in jouw account. Ditzelfde kan hij dan doen met het toegangsniveau. of zie ik dit verkeerd? en als ik het wel goed zie, hoe is dit te voorkomen?
Sessies staan opgeslagen op de server, niet lokaal op het werkstation. Op de pc wordt alleen een cookie gezet, met daar een geencrypt sessie id.
@chris oke, hijacken kan je toch tegen gaan door te contoleren of de screen name bij het ip hoort wat je wegschrijft in een database?
Ja maar dat kan dan alleen per sessie, het is niet slim om een gebruiker/bezoeker te koppelen aan een ipadres. Want dan zouden ze dus niet via telefoon of op het werk kunnen inloggen, vanwege een ander ipadres.
Wat je kunt doen is, wanneer er 2 verschillende ipadressen met de zelfde sessie werken, gewoon de sessie beeindigen endus de gebruiker(s) uitloggen.
Let wel dat je deze controle dan op elke pagina moet uitvoeren! Want als je bijvoorbeeld alleen op index.php controleerd, kan hij op home.php wel gewoon meeliften.
Het beste is een sessie en een ip koppelen op het moment dat er ingelogd wordt en dit controleren. Klopt dit heeft hij toegang. Zodra er elders met ingelogd word via de login pagina kun je deze opnieuw setten maar is hij wel uitgelogd op het andere ip adres.