Gå til innhold

Sikkerhet med sessions


Anbefalte innlegg

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
Videoannonse
Annonse
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 av xqus
Lenke til kommentar
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? :dontgetit:

 

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 av Ernie
Lenke til kommentar
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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...