JohndoeMAKT Skrevet 6. april 2008 Del Skrevet 6. april 2008 Hei, her på fredag skulle jeg kode noe med brukere og så kom jeg på at jeg aldri har brukt sessions. Til vanlig sitter jeg bak et rammeverk som tar seg av alt slikt eller bak HTTPAuth med bare et par brukere som ikke skilles fra hverandre. Så lurer jeg altså på om måten jeg valgte å kode er anbefalt og sikker. Jeg kodet et lite MVC-system hvor jeg øverst i en abstrakt kontrollerklasse jeg så utvider ( extends ) kjører session_start();. Dette skjer altså for hver sidevisning. Jeg sjekker etter en brukerid i $_SESSION, og om den finnes laster jeg brukerinformasjon fra database med den id som primary key i brukertabellen. Om den ikke er satt, om verdien ikke er av forventet datatype eller om bruker ikke finnes i databasen blir altså ikke et brukerobjekt lastet inn og når views blir rendret vil menyer ol. være for uinnloggede brukere. Når en bruker går til loginsiden er det et form med brukernavn og passord, når dette blir POSTet og disse stemmer mot en bruker i databasen henter jeg inn brukerobjektet og setter brukerid i $_SESSION. Dersom en bruker velger å logge ut kjører jeg session_destroy(); Kort fortalt: Dersom brukerid i $_SESSION, hent bruker fra database. Dersom POST fra innlogging som stemmer i database, sett brukerid i $_SESSION Dersom logout, session_destroy(); Har noen kommentarer til dette? Lenke til kommentar
Mats Danielsen Skrevet 7. april 2008 Del Skrevet 7. april 2008 Er det vits i og avlsutte alle sessionene? Jeg bruker bare $_SESSION['id']= FALSE; Lenke til kommentar
TheClown Skrevet 8. april 2008 Del Skrevet 8. april 2008 (endret) Pleier også å endre til FALSE. Gjør samme nytten. Så skjekker jeg heller om if(isset($_SESSION['online'])) { og if ($_SESSION['online'] == TRUE) { } } Bare for dobbel sikkerhet. Liten sjans for hacking da. Ellers bruker jeg cookies hvis det er snakk om loginfunksjoner Endret 8. april 2008 av TheClown Lenke til kommentar
Runar0 Skrevet 8. april 2008 Del Skrevet 8. april 2008 unset($_SESSION['noe']); fungerer og fint. Btw: TheClown: like greit å gjøre det slik: if(isset($_SESSION['online']) && $_SESSION['online'] === true) { // Online } Lenke til kommentar
TheClown Skrevet 8. april 2008 Del Skrevet 8. april 2008 Joda Runar, det funker å gjøre det enda enklere. N00b meg, men er trippel === nødvendig? Hva er forskjellen på === & == ? Lenke til kommentar
Jonas Skrevet 8. april 2008 Del Skrevet 8. april 2008 N00b meg, men er trippel === nødvendig? Hva er forskjellen på === & == ? Ikke egentlig, med mindre $_SESSION['online'] noen gang blir satt til '1' og det skal indikere at brukeren ikke er logget inn. Lenke til kommentar
JohndoeMAKT Skrevet 8. april 2008 Forfatter Del Skrevet 8. april 2008 Det virker som om jeg ikke har gjort noen brøler, så da takker jeg for alle svar. Ellers bruker jeg cookies hvis det er snakk om loginfunksjoner. Hva lagrer du i den cookien da? En randomverdi du også holder serverside? En slangs nonce? Lenke til kommentar
Martin A. Skrevet 9. april 2008 Del Skrevet 9. april 2008 N00b meg, men er trippel === nødvendig? Hva er forskjellen på === & == ? === gjør at '1' og 1 ikke er det samme. $var = 1; if( $var === '1' ) { // Denne blir aldri true } elseif( $var === 1 ) { // Denne blir } elseif( $var === TRUE ) { // Og denne } !== er da det motsatte av ===. Man kan også bruke strcmp() istede for ===. http://no.php.net/manual/en/language.opera....comparison.php Lenke til kommentar
TheClown Skrevet 9. april 2008 Del Skrevet 9. april 2008 Det virker som om jeg ikke har gjort noen brøler, så da takker jeg for alle svar. Ellers bruker jeg cookies hvis det er snakk om loginfunksjoner. Hva lagrer du i den cookien da? En randomverdi du også holder serverside? En slangs nonce? Jeg pleier å ha 3 cookies (copy&paste funksjoner jeg har lagd en gang i tiden). En til passord, en til brukerID (ikke brukernavn fordi disse kan endres) samt en som markere at brukeren er online. Jeg hadde planer om å endre sistenevnte til en hash av en eller annen form som kan øke sikkerheten noe. |EDIT| Takk for den Martin, da lærte jeg det også Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå