Avatar billede ppstyle Nybegynder
26. marts 2002 - 13:21 Der er 5 kommentarer og
1 løsning

Login - taglib - sessionshåndtering

Hej der. Jeg har kodet en login funktion, der på sin vis virker meget godt. Når en person er logget ind, smider jeg bare en streng ned i sesionskataloget. Næste gang brugeren vil hen til en anden jsp side, spørger mit taglib bare om han har denne her streng i sin session. Fint nok...

Og dog, hvad nu hvis en eller anden fandt ud af hvilken streng jeg smider i mit sessions katalog, og gør det samme ! Så kunne han faktisk hoppe uden om min login side, og direkte hen på den side han vil se ikke sandt ???

Kort sagt hvordan sikrer I jer at man ikke bare kan angive en direkte URL til en restricted jsp, men at brugeren kommer igennem login proceduren lige meget hvad.

Venter spændt - hilsen Daniel
Avatar billede disky Nybegynder
26. marts 2002 - 13:53 #1
hvad mener du med session kataloget ?

Du skal sætte din streng i dit session objekt, det objekt kan KUN den session brugeren har kigge i.
Selv hvis brugeren har 2 browsere åben, har hver browser sin egen session, og de kan ikke se hinanden.

Det jeg selv gør er at der på alle beskyttede sider bliver inkluderet en lille jsp side, som checker om brugeren har den streng på sin session stack, hvis ikke bliver man redirectet til login siden.
Avatar billede ppstyle Nybegynder
26. marts 2002 - 14:10 #2
Ok Disky lad os sige at strengen hedder valid, og at man på hver side kigger, om Strengen valid eksisterer i sessionen. Hvis den eksisterer er brugeren logget på, hvis ikke den eksisterer er brugeren ikke logget på, og redirectes derfor til login siden. Så langt så godt.

Så spørger jeg:

Hvad hvis der sidder en hacker og spørger efter http://en_sti/restricted.jsp. Nu finder denne hacker på, at smider en Streng ned i sin session, der hedder valid, det vil sige han gør det samme som mig. Ergo vil min jsp side tro han er logget på, og han er inde.

Nu ved jeg godt det ikke er ligetil for en hacker, at finde ud af hvad man sætter i sessionsobjektet som sikkerhed for man er logget ind, men kan du se min pointe ?

hilsen Daniel
Avatar billede disky Nybegynder
26. marts 2002 - 16:19 #3
For at gemme noget på session stacken skal hackeren kunne gemme et program og eksekvere det i samme session scope som brugerens browser har. Det er mig bekendt ikke muligt.

Din java server tildeler hver enkelt session et unique 40 tegns Session ID, det skal hackeren gætte, + han skal gemme et program på din server og køre det med den id. Der er godt nok MEGET svært, selvom jeg tror det er 100% umuligt.

Det en hacker kan gøre er at sniffe de tcpip pakker der sendes fra clienten til serveren, og derved finde ud af username og password.

Dette kan du dog forhindre ved brug af SSL.
Avatar billede soelvpil Nybegynder
26. marts 2002 - 20:39 #4
Enig.

Faktisk er det væsentligt lettere for hackeren at snage brugernavn/password, end at fuske sig ind i sessionen, så det giver ikke rigtig mening at bryde hovedet med, hvordan man kan gøre det endnu sværere.
Avatar billede ppstyle Nybegynder
27. marts 2002 - 08:50 #5
Nu mener jeg ikke at en hacker skal fuske sig ind i min session, men fuske sig ind på nogle restrikte jsp sider med en session, der har samme mønster som mit. Altså han laver selv en session på sin server ( med fx. et valid object, der inderholder samme streng ), og tilgår så en af mine jsp sider med en direkte URL. Da mine jsp sider jo kun kigger efter om sessionsobjectet har en streng ved valid vil han så få lov at kigge på min side.

Man kan da sige at det kan være svært nok, da han både skal gætte navnet på det object jeg sætter som attribut, og værdien af denne attribut, men I kan da godt se hvad jeg mener ikke ?

Hackeren kopierer ikke min eksisterende session, men efterligner en session så den godkendes.

mvh. Daniel
Avatar billede ppstyle Nybegynder
27. marts 2002 - 14:04 #6
Ved nærmere eftertanke kan jeg nu se hvad Disky mener :)
Alligevel mener jegstadigvæk det kan lade sig gøre. Dog skal jeg nok lave et opslag, hvis jeg finder ud af det.

Men tak for svarene, og kommentarene.

mvh. Daniel
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester