Gå til innhold

sessions og autentisering med servlets


Anbefalte innlegg

Hei, noen som vet hva beste praksisen er ved bruk av sessions i forbindelse med avgrensa medlemssider?

 

Bruker tomcat 5.5 og mysql 5. (ett eller annet).

 

Når brukeren logger inn, så blir han/hun autentisert via en mysql database. Det jeg lurer på er hvordan jeg skal bruke sessions for å holde på denne login'n etterpå uten at det går utover sikkerheten.

 

Jeg kan alltids lagre brukernavnet/id-nummer til brukeren i en cookie, men å kun bruke denne infoen for videre autentisering regnes vel ikke akkurat for å være sikkert? Det genereres derimot en cookie id jeg sikkert kan bruke, men vet ikke hvordan jeg skal implementere det i så fall.

 

Hva er beste fremgangsmåte?

Lenke til kommentar
Videoannonse
Annonse

Mange bruker direkte eller indirekte metodene i HttpSession:

Object getAttribute(String)

void setAttribute(String, Object)

 

Når brukerens brukernavn/passord er godkjent benytter du setAttribute metoden til å lagre f.eks et brukernavn eller et "User"objekt i sesjonen.

Ved forespørsel til alle beskyttede sider benytter du getAttribute metoden for å hente ut samme brukernavn/objekt. Hvis dette mangler er brukeren ikke logget inn, og du kan videresende til en innloggingsside. Hvis brukeren er logget inn kan du benytte informasjon fra "User" objektet i den videre prosesseringen. Ved utlogging kan du f.eks benytte removeAttribute.

 

Denne mekanismen bruker session-cookies og brukeren må ha på cookies for at dette skal fungere. "User" objektet vil være lagret på serversiden og ingen brukere kan se denne informasjonen.

 

Denne metoden er ikke nødvendigvis sikker nok for tjenester som er kritiske pga fare for session-hijacking. Den kan forsterkes ved å sette ekstra cookies med hash av f.eks ipadresse/browserid/etc.

 

Lykke til!

Endret av w3edr5t
Lenke til kommentar
Mange bruker direkte eller indirekte metodene i HttpSession:

Object getAttribute(String)

void setAttribute(String, Object)

 

Når brukerens brukernavn/passord er godkjent benytter du setAttribute metoden til å lagre f.eks et brukernavn eller et "User"objekt i sesjonen.

Ved forespørsel til alle beskyttede sider benytter du getAttribute metoden for å hente ut samme brukernavn/objekt. Hvis dette mangler er brukeren ikke logget inn, og du kan videresende til en innloggingsside. Hvis brukeren er logget inn kan du benytte informasjon fra "User" objektet i den videre prosesseringen. Ved utlogging kan du f.eks benytte removeAttribute.

 

Denne mekanismen bruker session-cookies og brukeren må ha på cookies for at dette skal fungere. "User" objektet vil være lagret på serversiden og ingen brukere kan se denne informasjonen.

 

Denne metoden er ikke nødvendigvis sikker nok for tjenester som er kritiske pga fare for session-hijacking. Den kan forsterkes ved å sette ekstra cookies med hash av f.eks ipadresse/browserid/etc.

 

Lykke til!

7094658[/snapback]

 

 

Ah... takk =) Det oppklarte litt..

 

Jeg har gjort det akkurat slik du sa, men jeg hadde missforstått session saken litt og trodde at brukernavnet ble lagra på klientmaskinen når man brukte setAttribute (noe som ikke ville vært særlig sikkert). Var ikke klar over at denne kun lagres på serveren, og da bruker session id til å finne tilbake til attributen.

 

Glimrende :thumbup:

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...