25. september 2008 - 21:09Der er
31 kommentarer og 2 løsninger
Sessions vs Cookies
Hej
Jeg har længe været lidt i tvivl om hvad der er praktisk og mest sikrest at bruge til validering af login.
Jeg kan godt lide at man kan sætte levetiden på cookies, så de f.eks. dør ud efter 15 min inaktivitet. (Ved ikke om dette også kan laves med sessions, kan det er jeg meget interesseret)
Cookies kan forfalskes, ved jeg udmærket. Sessions kan vel også blive brugt af andre script på den websever jeg kører på? Eller er det kun på mit domæne jeg har adgang??
Jeg kunne godt tænke mig at høre jeres mening om hvad i helst vil bruge.
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Sessions bliver, så vidt jeg ved, også lagres i en form for cookies, så det skulle gerne være det samme. =) Sessions kan også "hijackes", men du mindsker risikoen for dette betydeligt ved at sætte:
Cookies (og dermed sessions) virker kun for samme domæne. Levetid i sessioner kan enten sættes på serveren, default normalt 20 minutter, eller du kan sætte en tid i en sessionvariabel.
@erikjacobsen "Cookies (og dermed sessions) virker kun for samme domæne."
Det er ikke nødvendigvis helt korrekt, og kommer lidt an på, hvordan dit hotel er sat op. Det er rigtigt, at hvis du læser en session for en bruger, så får du kun de oplysninger der er lagt i sessionen af dit domæne, men hvis serveren er sat op til at gemme alle sessions samme sted på serveren, uanset domæne (og det har jeg faktisk oplevet hos et hotel, ingen nævnt, ingen glemt), så kan alle brugere af serveren i princippet læse og skrive til hinandens sessions. Men det er forhåbentlig de færreste steder der forekommer den slags rod i opsætningerne. Er råd kunne være at lave dit eget session-bibliotek og gemme dine sessions der:
Denne ini_set('session.gc_maxlifetime', 60) retunerer 1440, altså den gamle værdi. Så vidt jeg ved, burde levetiden nu være sat til 60 sekunder = 1 minut?
Men jeg kan bare se at sessions lever videre, hvis jeg åbner en testside og ikke røre den igen i 2 min, eksistere sessions stadigvæk. Betyder det så at jeg ikke har tilladelse til at ændre denne indstilling??
Ja, når du laver en session, oprettes en session-fil i din save_path, og denne slettes først igen ved garbage-collection, og hvis det kun er dig der tester på siden, og garbege-collection'en ikke udføres så ofte, kan dette være grunden til at din session overlever længere end den burde.
Tjah, det er jo lidt svært at sige, når jeg ikke har ret meget at gå ud fra, men kunne det være fordi du har skrevet din sti forkert? Husk at du skal sætte stien før du kører session_start() ;)
Hvis du kigger ud af vinduet og du ser et par grise flyve forbi, eller hvis du kigger i kalenderen og der er 2 søndage i næste uge så .................
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.