SESSIONS, wat wel en wat niet?
Ik ben nog een beetje aan het goochelen met sessie's. Van een heleboel mensen hoor ik dat het niet handig is om in je sessie iets als "ingelogd = true" neer te zetten.
Maar aan de andere kant, zeggen veel mensen dat mensen hun sessie niet kunnen aanpassen, omdat die alleen op de server staat.
Wat is nou wijsheid?
Gewoon heel simpel een '$_SESSION['ingelogd'] = true;'
of iets als '$_SESSION['ingelogd'] = hash($naam . $bool . $salt . $_SERVER['REMOTE_ADDR']);
Dat kan op vele manieren. Je kan ook gewoon in de database bijhouden of iemand is ingelogd, dan zet je bv. het id in de session. Zeker is het ook slim om het ip in de database te zetten en steeds te checken of het ip wel bij het id hoort.
en als je alles zou loggen in je db, heb je dan niet enorm veel query's?
Of ruim je ze na 3 dagen op ofzoiets?
Hou het gewoon veilig en simpel, maak een sessie van de gebruikersnaam en haal die op uit de database. (als de naam/wachtwoord klopt bij het inloggen) gebruik voor je systeem een simpel hoofd file (soort class)(OOP), voor alle kleine dingetjes simpeler te maken en de query's veilig en mooi te laten uitvoeren.
- SanThe - op 11/10/2011 23:24:15:
Zeker is het ook slim om het ip in de database te zetten en steeds te checken of het ip wel bij het id hoort.
Bedenk wel dat je hiermee mobiele gebruikers (bv. via 3G) van jouw website gaat uitsluiten, die wisselen zeer vaak van ip-adres. Weliswaar binnen de netwerk-range van hun provider, maar het wisselt wél.
Bartje Jansen op 12/10/2011 14:23:50:
Bedenk wel dat je hiermee mobiele gebruikers (bv. via 3G) van jouw website gaat uitsluiten, die wisselen zeer vaak van ip-adres. Weliswaar binnen de netwerk-range van hun provider, maar het wisselt wél.
- SanThe - op 11/10/2011 23:24:15:
Zeker is het ook slim om het ip in de database te zetten en steeds te checken of het ip wel bij het id hoort.
Bedenk wel dat je hiermee mobiele gebruikers (bv. via 3G) van jouw website gaat uitsluiten, die wisselen zeer vaak van ip-adres. Weliswaar binnen de netwerk-range van hun provider, maar het wisselt wél.
Doen ze dat gewoon midden in een internetverbinding waarin ze aan het browsen zijn?
- SanThe - op 12/10/2011 14:34:23:
Doen ze dat gewoon midden in een internetverbinding waarin ze aan het browsen zijn?
Bartje Jansen op 12/10/2011 14:23:50:
Bedenk wel dat je hiermee mobiele gebruikers (bv. via 3G) van jouw website gaat uitsluiten, die wisselen zeer vaak van ip-adres. Weliswaar binnen de netwerk-range van hun provider, maar het wisselt wél.
- SanThe - op 11/10/2011 23:24:15:
Zeker is het ook slim om het ip in de database te zetten en steeds te checken of het ip wel bij het id hoort.
Bedenk wel dat je hiermee mobiele gebruikers (bv. via 3G) van jouw website gaat uitsluiten, die wisselen zeer vaak van ip-adres. Weliswaar binnen de netwerk-range van hun provider, maar het wisselt wél.
Doen ze dat gewoon midden in een internetverbinding waarin ze aan het browsen zijn?
Ja, middenin een sessie, en dat ook meerdere keren. Ik log een zeer drukke website in NL (meer dan 1 miljoen bezoekers per dag) met een groot aantal mobiele gebruikers, en zie vele sessies vaak van ip-adres wisselen. Soms krijgen ze ook weer een ip-adres toegewezen wat ze enkele minuten eerder ook al hebben gebruikt.
Als het waar is wat jij zegt, dat een ip-adres gedurende 1 sessie kan wijzigen, dan zou de bovengenoemde beveiliging niks waard zijn.
Ik heb er nog nooit van gehoord dat ip-adressen kunnen wijzigen tijdens een en dezelfde sessie. Als iemand hier aantoonbaar bewijs voor kan leveren dan wil ik dat graag weten...
Ozzie PHP op 12/10/2011 15:37:09:
Ik heb er nog nooit van gehoord dat ip-adressen kunnen wijzigen tijdens een en dezelfde sessie. Als iemand hier aantoonbaar bewijs voor kan leveren dan wil ik dat graag weten...
Het lijkt mij inderdaad dat er op zijn minst dataverlies optreedt. Dus ik ben ook benieuwd naar het aantoonbaar bewijs.
Ozzie PHP op 12/10/2011 15:37:09:
Bartje, ik vind dit maar vreemd dat tijdens een sessie het ip adres wordt gewisseld. Ik dacht dat het een goede manier was om (indien bekend) de http referer op te slaan in een sessie-bestand. Zodra deze http referer dan verandert (wat zou neerkomen op een hackpoging) zou ik dan de sessie vernietigen.
Als het waar is wat jij zegt, dat een ip-adres gedurende 1 sessie kan wijzigen, dan zou de bovengenoemde beveiliging niks waard zijn.
Ik heb er nog nooit van gehoord dat ip-adressen kunnen wijzigen tijdens een en dezelfde sessie. Als iemand hier aantoonbaar bewijs voor kan leveren dan wil ik dat graag weten...
Als het waar is wat jij zegt, dat een ip-adres gedurende 1 sessie kan wijzigen, dan zou de bovengenoemde beveiliging niks waard zijn.
Ik heb er nog nooit van gehoord dat ip-adressen kunnen wijzigen tijdens een en dezelfde sessie. Als iemand hier aantoonbaar bewijs voor kan leveren dan wil ik dat graag weten...
Dat bewijs kun je zelf genereren, ga maar eens met je mobieltje (met internet) in de trein zitten en dan surfen op jouw eigen website. Zo genereer je data op jouw site, via verschillende 3G antennes. En dus verschillende ip-adressen.
En nee, ik kan en mag hier geen loggings van onze website publiceren.
(zit helaas nooit in een trein dus dat kan ik niet testen)
Gewijzigd op 12/10/2011 18:30:42 door PHP Scripter
@Bartje: heb je op internet ergens informatie kunnen vinden die jouw bevindingen bevestigt?
Ozzie PHP op 12/10/2011 20:30:20:
@Bartje: heb je op internet ergens informatie kunnen vinden die jouw bevindingen bevestigt?
Daar heb ik niet naar gezocht, maar de ip-adressen zijn van Vodafone, Tmobile, KPN, etc. en het zijn de iPhone's, iPad's en Android-toestellen die hier gebruik van maken. Dat was voor ons voldoende om te stellen dat de ip-adressen wisselen bij 3G-netwerken.
Gewijzigd op 12/10/2011 20:54:16 door Bartje Jansen
Bartje Jansen op 12/10/2011 20:53:45:
Daar heb ik niet naar gezocht, maar de ip-adressen zijn van Vodafone, Tmobile, KPN, etc. en het zijn de iPhone's, iPad's en Android-toestellen die hier gebruik van maken. Dat was voor ons voldoende om te stellen dat de ip-adressen wisselen bij 3G-netwerken.
Ze wisselen vast wel, maar niet tijdens een verbinding. Dat zou dataverlies kosten.
Waarom deze vraag? Nou stel dat iemand een hack poging doet via een mobiel apparaat en je blokkeert dat ip-adres... wiens ip-adres blokkeer je dan eigenlijk?
@Bartje: hoe heb je exact geconstateerd dat één sessie meerdere ip-adressen gebruikt?
Ozzie zoek eens wat info op over dhcp-servers. Dat zijn servers die, zodra er een machine zich aanmeldt op het netwerk, ip-nummers uitdelen. Ze doen dat uiteraard alleen vanuit de range die ze ter beschikking hebben. Het zou dus technisch kunnen dat iemand anders morgen met jouw ip-nummer aan het internetten is en dat jij een ander ip-nummer hebt.
@SanThe: dat wist ik niet. Is het dan ook een slecht idee om ip-adressen te blokkeren (in geval van een hack poging)?
IP Blocken heeft volgens mij nooit echt zin. Er zijn ook altijd nog de proxy servers waardoor jij niet eens weet welk ip nummer er achter zit.
Hmmm, ja... das waar... maar stel je hebt een heftige hackpoging vanaf een bepaald ip-adres... of vanaf een bepaald ip-adres wordt 3x een verkeerde inlogpoging gedaan... dan moet je zo'n ip-adres toch blocken? In ieder geval tijdelijk?
Dat kan. Maar meer dan tijdelijk zou ik persoonlijk niet doen.