Sessions of cookies

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Chris PHP

Chris PHP

02/05/2012 10:08:17
Quote Anchor link
Je kunt toch een session_regenerate_id gebruiken om de kans op session hacken te verkleinen. En dan maakt het niet uit of nu gebruiker pietje het id 2130978219837 heeft, de volgende keer dat hij weer inlogt heeft pietje 958763236987234.

Met andere woorden, telkens als je voor een gebruiker een sessie aanmaakt wordt er een nieuwe sessie id gegenereerd. Tevens kunnen 'hackers' weinig met een gebruikersnaam lijkt me.

een andere oplossing kan zijn dat je elke gebruiker een 'screen name' geeft. Met andere woorden dit kan compleet afwijken van je gebruikersnaam. Hier is je gebruikernaam je email adres, echter is mijn 'screen name' Chris NVT :D.
 
PHP hulp

PHP hulp

29/04/2024 14:25:42
 
Ozzie PHP

Ozzie PHP

02/05/2012 10:16:09
Quote Anchor link
"Je kunt toch een session_regenerate_id gebruiken om de kans op session hacken te verkleinen. En dan maakt het niet uit of nu gebruiker pietje het id 2130978219837 heeft, de volgende keer dat hij weer inlogt heeft pietje 958763236987234."

Dit kan ik even niet volgen. Daar hoef je de regenerate functie toch niet voor te gebruiken? Dat gaat toch automatisch als er een nieuwe sessie wordt aangemaakt?
 
Chris PHP

Chris PHP

02/05/2012 10:59:51
Quote Anchor link
Ozzie PHP op 02/05/2012 10:16:09:
"Je kunt toch een session_regenerate_id gebruiken om de kans op session hacken te verkleinen. En dan maakt het niet uit of nu gebruiker pietje het id 2130978219837 heeft, de volgende keer dat hij weer inlogt heeft pietje 958763236987234."

Dit kan ik even niet volgen. Daar hoef je de regenerate functie toch niet voor te gebruiken? Dat gaat toch automatisch als er een nieuwe sessie wordt aangemaakt?


Ja de sessie vervalt, en je maakt een 'nieuwe' sessie aan. Echter kan de sessie ID lang hetzelfde blijven. Dus kan een hacker meeliften op dat id.
 
Ozzie PHP

Ozzie PHP

02/05/2012 11:01:51
Quote Anchor link
Wat is dan de oplossing? Bij iedere pagina-aanroep de sessie id wijzigen? Dat lijkt me vanuit performance oogpunt niet echt heel slim...
 
Chris PHP

Chris PHP

02/05/2012 12:02:00
Quote Anchor link
Ozzie PHP op 02/05/2012 11:01:51:
Wat is dan de oplossing? Bij iedere pagina-aanroep de sessie id wijzigen? Dat lijkt me vanuit performance oogpunt niet echt heel slim...


huh? bij iedere pagina aanroep? Je maakt hopelijk toch niet op elke pagina een nieuwe sessie wel?

Bij login neem ik aan dat je een sessie aanmaakt correct? Dus daar generate je een nieuwe id, zodat hij bij het aanmaken van de sessie een nieuwe id krijgt.

Bij uitloggen of sluiten van de browser wordt de sessie beeindigd, dus wordt er bij login weer een nieuwe aangemaakt met een nieuw id.
 
Ozzie PHP

Ozzie PHP

02/05/2012 12:13:05
Quote Anchor link
"Bij login neem ik aan dat je een sessie aanmaakt correct? Dus daar generate je een nieuwe id, zodat hij bij het aanmaken van de sessie een nieuwe id krijgt."

Ja, maar jij gebruikt hier toch niet de session_regenerate_id functie mag ik hopen?
 
Chris PHP

Chris PHP

02/05/2012 12:16:37
Quote Anchor link
Ozzie PHP op 02/05/2012 12:13:05:
"Bij login neem ik aan dat je een sessie aanmaakt correct? Dus daar generate je een nieuwe id, zodat hij bij het aanmaken van de sessie een nieuwe id krijgt."

Ja, maar jij gebruikt hier toch niet de session_regenerate_id functie mag ik hopen?
session-regenerate-id Lees dit even door, dan begrijp je wel wat ik bedoel ;)
 
Ozzie PHP

Ozzie PHP

02/05/2012 12:29:01
Quote Anchor link
Je beantwoordt mijn vraag niet ;)
 
Chris PHP

Chris PHP

02/05/2012 12:32:21
Quote Anchor link
Ozzie PHP op 02/05/2012 12:29:01:
Je beantwoordt mijn vraag niet ;)


LOL, bij het login script genereer ik een nieuwe sessie id, dus

session_start();
session_generate_id();

blablabla de rest van het script.
 
Ozzie PHP

Ozzie PHP

02/05/2012 12:40:04
Quote Anchor link
Ja, maar dit betekent dus dat jij bij IEDERE pagina-aanroep een nieuwe ID genereert!
 
Chris PHP

Chris PHP

02/05/2012 12:41:54
Quote Anchor link
Ozzie PHP op 02/05/2012 12:40:04:
Ja, maar dit betekent dus dat jij bij IEDERE pagina-aanroep een nieuwe ID genereert!


Hoe kom je daar toch bij? Dit wordt alleen bij het login script gebruikt!

Dus niet op elke pagina waar session_start(); staat, maar waar de sessie aangemaakt wordt.
 
Ozzie PHP

Ozzie PHP

02/05/2012 12:45:40
Quote Anchor link
ja, maar het heeft geen zin :)

Iedere sessie krijgt z'n eigen id. Jij start nu een sessie en vervolgens ga je de id van die sessie veranderen :)
 
Chris PHP

Chris PHP

02/05/2012 12:56:53
Quote Anchor link
Ozzie PHP op 02/05/2012 12:45:40:
ja, maar het heeft geen zin :)

Iedere sessie krijgt z'n eigen id. Jij start nu een sessie en vervolgens ga je de id van die sessie veranderen :)


Een sessie id wijzigd niet als je gewoon weer een nieuwe sessie aanmaakt.

test het is en maak is een sessie aan, dan echo session_id();
dan browser compleet sluiten en herhaal.
 
Ozzie PHP

Ozzie PHP

02/05/2012 13:01:45
Quote Anchor link
maar wel als je die regenerate functie gebruikt. Die gebruik jij nu voor niks.
Dat is wat ik bedoel...

Tenzij er dus een bestaande sessie is die jij verandert als men inlogt. Is dat wat je bedoelt?
 
Chris PHP

Chris PHP

02/05/2012 13:08:01
Quote Anchor link
Ozzie PHP op 02/05/2012 13:01:45:
maar wel als je die regenerate functie gebruikt. Die gebruik jij nu voor niks.
Dat is wat ik bedoel...

Tenzij er dus een bestaande sessie is die jij verandert als men inlogt. Is dat wat je bedoelt?


Nogmaals heeeeeeel uitgebreid :D

Als iemand inlogd, maak ik een sessie aan en sla daar wat stats in op.
vervolgens huppelt die over de site en na een uur verlaat hij de site (einde sessie!). Of het nu via een logout (session_destroy();) of sluiten van de browser is, de sessie is beeindigd.

Logt ie opnieuw in ZONDER zijn cache/cookies etc te clearen krijgt hij de zelfde sessie ID als voorheen terug!, dit verkom je dus om bij een nieuwe login de session_generate_id te gebruiken. Hier krijgt hij dus een nieuwe.

P.S. de Wiki link over sessie id.
Gewijzigd op 02/05/2012 13:09:46 door Chris PHP
 
Ozzie PHP

Ozzie PHP

02/05/2012 13:14:41
Quote Anchor link
Hmmm... oké. Maar als iemand handmatig uitlogt, dan destroy je de sessie + reset je de cookie. Dan is volgens mij de sessie_id ook gewist en krijg je bij opnieuw inloggen dus automatisch een nieuwe sessie id.

Zelfde geldt voor time-out. Sessie is verlopen dus er wordt een nieuwe sessie gegenereerd, dus ook nieuwe sessie id.
 
Chris PHP

Chris PHP

02/05/2012 13:21:02
Quote Anchor link
Ozzie PHP op 02/05/2012 13:14:41:
Hmmm... oké. Maar als iemand handmatig uitlogt, dan destroy je de sessie + reset je de cookie. Dan is volgens mij de sessie_id ook gewist en krijg je bij opnieuw inloggen dus automatisch een nieuwe sessie id.

Zelfde geldt voor time-out. Sessie is verlopen dus er wordt een nieuwe sessie gegenereerd, dus ook nieuwe sessie id.


Cookies worden niet verwijderd bij een session_destroy(); dus de session_id blijst daarin staan, de eerst volgende keer dat je inlogt ziet hij die cookie en dat id wat dus hergebruikt wordt.

Sessies worden op de server opgeslagen, niet lokaal alleen een cookie met het ID erin staat lokaal. session_destroy(); zal dan ook alleen de sessie op de server vernietigen.

Vandaar het advies gebruik session_generate_id(); bij het inlog script
 
Ozzie PHP

Ozzie PHP

02/05/2012 13:33:20
Quote Anchor link
Als ik mijn sessie destroy dan reset ik ook de cookie dus dat probleem heb ik niet.

Wat ik alleen niet begrijp is hetvolgende. Als de sessie expiredt dan is de sessie (het bestand) niet meer geldig en wordt er een nieuws sessiebestand gemaakt. De naam van dat bestand correspondeert met het sessie-id... wat dus verandert.

Daarnaast... als ik een actieve sessie heb en ik sluit de browser af en ik start een nieuwe browser, dan krijg ik toch ook een nieuwe id?

Anyhow, ik zal me er nog eens een keer in verdiepen als ik meer tijd heb ;-)
Gewijzigd op 02/05/2012 13:33:45 door Ozzie PHP
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.