kimla Skrevet 10. februar 2007 Del Skrevet 10. februar 2007 Jeg lager et brukersystem der brukerene har forskjellige rettigheter. 1: Total-administrator 2: Bruker-administrator 3: Nyhetsposter osv... Er det "lovlig" å legge dette sikkerhetsnivået i en session variabel? f. eks: $_SESSION['Rettighet'] = $aktuell_rettighet; // hentet fra databasen seff Og da senere kjøre spørringer der $_SESSION['Rettighet'] er med for å gi ett visst tilgangsnivå? Jeg er litt ny på sessions, men blir $_SESSION['Rettighet'] lagret som en cookie på pc-en til brukeren i tillegg til en flatfil på serveren? Hvis rettighetsnivået blir lagret på brukeren sin datamaskin er jo dette noe jeg absolutt må gå bort fra. Takker for svar på forhånd. Lenke til kommentar
Runar0 Skrevet 10. februar 2007 Del Skrevet 10. februar 2007 Bruker nivået blir lagra på serveren mens ei cookie med en session id blir sent til brukeren, så det burde gå fint å bruke session Lenke til kommentar
kimla Skrevet 10. februar 2007 Forfatter Del Skrevet 10. februar 2007 Ok, da kjører jeg videre med det til noen forklarer meg at jeg ikke burde det Lenke til kommentar
Ernie Skrevet 10. februar 2007 Del Skrevet 10. februar 2007 En ting som er verdt å merke seg er at ved delt server så vil alle ha tilgang til session-dataene. Dvs. at man ideelt sett ikke bør lagre slike ting der, men heller brukernavn og passord, hvor man så sjekker opp mot database. Lenke til kommentar
xqus Skrevet 11. februar 2007 Del Skrevet 11. februar 2007 (endret) En ting som er verdt å merke seg er at ved delt server så vil alle ha tilgang til session-dataene. Dvs. at man ideelt sett ikke bør lagre slike ting der, men heller brukernavn og passord, hvor man så sjekker opp mot database. 7914402[/snapback] Vel, det gjør jo bare saken enda værre. Dersom en angriper faktisk får tilgang til dine session data, så kan han ikke bare se hvem som har hva brukernivå, men faktisk også skaffe seg brukernavnet og passordet til de som er logget inn? Lagre brukernivået du. Det er fullt "lovlig". Men hvis du vil være virkelig sikker: http://phpsec.org/projects/guide/5.html Endret 11. februar 2007 av xqus Lenke til kommentar
Ernie Skrevet 11. februar 2007 Del Skrevet 11. februar 2007 (endret) En ting som er verdt å merke seg er at ved delt server så vil alle ha tilgang til session-dataene. Dvs. at man ideelt sett ikke bør lagre slike ting der, men heller brukernavn og passord, hvor man så sjekker opp mot database. 7914402[/snapback] Vel, det gjør jo bare saken enda værre. Dersom en angriper faktisk får tilgang til dine session data, så kan han ikke bare se hvem som har hva brukernivå, men faktisk også skaffe seg brukernavnet og passordet til de som er logget inn? Lagre brukernivået du. Det er fullt "lovlig". Men hvis du vil være virkelig sikker: http://phpsec.org/projects/guide/5.html 7918623[/snapback] Verre? Hvordan skal det gjøre ting verre? Du lagerer jo ikke passordet i klartekst, og brukernavnet kan man jo forsåvidt bytte ut med en id om det skulle gjøre at du føler deg bedre. Dette er informasjon du er pent nødt til å lagre. Brukernavn/id fordi du må skille brukerne fra hverandre, og passord fordi du ikke vil at noen skal gå inn og sette f.eks admins brukernavn/id inn helt uten videre. Om du ikke lagrer passordet og legger inn brukernivået i vanlig session kan jo alle på serveren logge seg inn med en vanlig bruker og skaffe seg maks tilgang. Mener du virkelig det er verre? Dog, den ultimate løsningen er helt klart database, men da skal man være obs på at alle filene hos enkelte host-er er fullt lesbare. Så det gir ikke umiddelbart helt god sikkerhet det heller. Riktignok har man environmental variables, men jeg usikker på hvordan det fungerer i praksis. Endret 11. februar 2007 av Ernie Lenke til kommentar
xqus Skrevet 11. februar 2007 Del Skrevet 11. februar 2007 Du lagerer jo ikke passordet i klartekst Så si det da.. Men jeg pleier ikke beskymre meg for session poisoning (eller hva man skal kalle det) uansett for det er en utrolig sjelden type angrep. Men det er såklart min oppfattning. Dog, den ultimate løsningen er helt klart database, men da skal man være obs på at alle filene hos enkelte host-er er fullt lesbare. Så det gir ikke umiddelbart helt god sikkerhet det heller. Riktignok har man environmental variables, men jeg usikker på hvordan det fungerer i praksis. Det er de, men tillates man å åpne filer på andre sitt område ved å bruke PHP/Perl eller andre scriptspråk er det på tide å bytte host. Env variabler settes i vhosten i apache config filen, (ikke i .htaccess) og ser noe slikt ut: SetEnv var value Om jeg ikke husker helt feil da. Men nå er vi litt offtopic. Lenke til kommentar
kimla Skrevet 11. februar 2007 Forfatter Del Skrevet 11. februar 2007 Vel, dette systemet må nok ut på egen server når det er oppegående uansett. Må ha tilgang til å ordne med vhosts osv automatisk. Dessuten er det bare jeg som skal ha tilgang til serveren også, det skal ikke være mulig for andre å logge på ftp el. Så må jo sikre meg så godt som mulig på den fronten også, men gitt det utgangspunktet så burde det vel være greit med rettigheter i session. Hvis det skulle vise seg å gå annerledes så endrer jeg det bare 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å