login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Snippets > session class 1.0


Reacties op het script session class 1.0

Offline  Thomas
Gepost op: 09 augustus 2006 - 11:12
Moderator



Interessante class.

Aantal dingen die mij opvielen / mogelijke ideeën:

* accessen van sessie-bestand
Ik begrijp niet helemaal de timeouts werken? Als een sessie-bestand ouder is dan (de speciale sessie-variabele?) 'session_timeout' dan wordt deze verwijderd, maar in de methode session_check_alive() wordt deze tijd niet geupdate?
Daarnaast kun je aan de creatie-tijd van het sessie-bestand niet zien of er nog actief gebruik van gemaakt wordt (deze kan immers continue, in tijdsintervallen kleiner dan session_timeout zijn geraadpleegd).
Misschien is het een idee om het sessie-bestand te touch()-en op het moment dat je deze uitleest of wijzigt?
Daarnaast zul je een of andere garbage-collection-routine moeten maken om je sessie-folder uit te mesten (reden te meer om met touch() te werken, omdat als je methoden niet meer aangeroepen worden, er niet kan worden vastgesteld welke sessies nog leven, en er ook niets wordt opgeruimd)?

* naamgeving
Bepaalde namen van sessie-variabelen zijn gereserveerd? Of niet?

* beveiliging
De sessie-folder dient ofwel beveiligd te worden (.htaccess of equivalent) ofwel buiten de webfolder geplaatst te worden lijkt me. Dit aspect (veiligheid) mag nog wat meer benadrukt worden .

* performance
Misschien is het tevens een idee om de sessie-data tevens in een object-variabele op te slaan (kopie van sessie-gegevens in het sessie-bestand), en -om te kijken of er gerommeld is met de inhoud- de hash van de geserialiseerde data in de object-variabele te vergelijken met de hash van het sessie-bestand (als dit mogelijk is). Dit bespaart je wellicht wat tijd ten opzichte van de variant waarbij je elke keer alle sessie-data in een of andere object-structuur zet. Maar dit zou je dus moeten meten .

Offline  Stijn
Gepost op: 09 augustus 2006 - 12:46
PHP expert



leuk om te horen dat er iemand goed heeft gekeken en interessante voorstellen heeft.

* van die timeouts had ik het volgende in me hoofd dat wanneer je bijvoorbeeld 300 seconden geen actie meer gedaan hebt op de site dat hij een timeout doet. dus het sessie bestand verwijdert. met een simpele refresh heb je terug een sessie bestand. (misschien kan je meer uitleggen met die tijdintervallen *-) als je een sessie start zet hij automatisch een tijd neer in de 'session_history' en met die rekenen ik de timeouts.)

* ik zal eens touch testen en als het voordelen heeft zal ik het gebruiken. had nog nooit van die functie gehoord 

* het is misschien interessant om bepaalde namen te controleren. Met het lezen van die performance uitleg lijkt me dat sterk nodig.

*.htaccess bestand wordt erin geplaatst (vergeten). Maar ik denk eraan dat ik de sessie bestanden een andere naam zal moeten geven. het ip adres blijft (kan je met reg ex uit halen) maar dat er nog speciale tekens bij komen zodat de gebruiker niet op bestand kan komen.

* als er bugs zijn wordt er zo snel aan gewerkt en dus de veiligheid hoger. Een wijs man zei ooit: teveel code levert automatisch veel bugs op (Minix OS ontwerper )

Ik zal vanavond verderwerken aan de update. eerst kapper en dan leren voor herexamens 

mvg stijn

[edit]

het is geupdate. Ik zal de download erbij zetten en kan je hem verder testen heb de naamverandering van de session files niet gedaan omdat dit verkeerd liep. dat van die object opslaan ook niet omdat het langer duurd dan als ik het gewoon met de file check.

mvg stijn

Offline  nemesiskoen
Gepost op: 24 augustus 2006 - 23:18
Gouden medaille

PHP expert




Prachtig idee, echt super. De uitwerking is ook heel goed. Hier en daar merk ik kromme zaken als hieronder een voorbeeld staat, maar het is echt chique! Chapeau!

  1. if( $this->session_update_data( $this->session_file_name() , $data , true ) === false ) {
  2. return false;
  3. } else {
  4. return true;
  5. }


Dit kan korter;)

Offline  Stijn
Gepost op: 25 augustus 2006 - 17:34
PHP expert



Citaat:
[I][B]nemesiskoen[/B] schreef op 24 Augustus 2006 - 23:18[/I]

Prachtig idee, echt super. De uitwerking is ook heel goed. Hier en daar merk ik kromme zaken als hieronder een voorbeeld staat, maar het is echt chique! Chapeau!

[..code..]

Dit kan korter;)
dankje heb het verkort bij alle functies.

Offline  Richard
Gepost op: 23 september 2006 - 13:41
Crew algemeen



Het heeft eigelijk niet veel zin om in een constructor true of false terug te geven he;-)

Offline  Ryse
Gepost op: 15 juli 2010 - 22:04
Lid



Kan iemand mij wellicht vertellen hoe veilig dit nu is? Ik wil graag een nette, veilige login class schrijven.


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.038s