Avatar billede websam Nybegynder
19. juni 2009 - 08:43 Der er 16 kommentarer og
1 løsning

Smart eller bare for dumt ?

Jeg faldt over en artikel http://www.thomasfrank.se/sessionvars.html hvor man benytter window.name til at opbevare data via javascript, så disse er tilgængelige for andre sider.

Altså kan man f.eks lave et object og gemme det for så at have det tilgæbgeligt på andre sider :

var myObj = {var1: "value1", var2: "value2"}

Jeg kan godt se det smarte i at bruge clienten til at holde på data til f.eks et treeview hvor man vil sætte en "open" status på det sidst klikkede link.

Så spørgsmålet er, som overskriften siger, er dette smart eller bare for dumt ?

Fortsat god dag ;o)
Avatar billede erikjacobsen Ekspert
19. juni 2009 - 09:25 #1
Du skal minimum være opmærksom på at det ikke kan sidestilles med sessions variabler i PHP, ASP.NET og lignende, hvor de opbevares på serveren, og ikke kan ses af brugeren.
Avatar billede jensgram Nybegynder
19. juni 2009 - 09:50 #2
Risikoen for session hijacking bliver derimod elimineret (forudsat at du ikke eksponerer følsomme data til klienten)
Avatar billede erikjacobsen Ekspert
19. juni 2009 - 10:22 #3
Session hijacking ved at gætte (eller snyde sig til) et session id kan ikke gøres. Til gengæld vil både brugeren, og dem der lytter med på konversationen, få direkte adgang til alle data.
Avatar billede arne_v Ekspert
19. juni 2009 - 11:11 #4
Selvom man ikke gemmer data i server side session, saa vil langt de fleste web apps stadig bruge session til at kontrollere login d.v.s. at session hijacking er stadig muligt.
Avatar billede arne_v Ekspert
19. juni 2009 - 11:14 #5
Det er et sjovt trick, men efter min bedste overbevisning med begraenset brugbarhed.

Hvis din web app er "classic" saa vil du hellere have dine data server side, fordi al logikken er server side.

Hvis din web app er "pure AJAX", saa har du alligevel kun en side hvor indholdet styres af JavaScript.

Tricket er kun brugbart hvis du har logik client side i JavaScript men alligevel laver hyppige side skift.
Avatar billede jensgram Nybegynder
19. juni 2009 - 11:58 #6
Erik & Arne > Det er et par gode pointer. Jeg siger tak :)
Avatar billede websam Nybegynder
19. juni 2009 - 17:51 #7
Erik >>
Jeg er helt med på at jeg ikke kan sammenligne det med server sessions, ideen er at bruge det til kontrol af aktive menu punkter i et treeview på tværs af sider. Således kan jeg via javascript angive hvilke menu punkter der skal være åbne og hvilke der skal være lukket.

Arne >>
Uanset om jeg bruger klassiske data sider eller benytter ajax til at generere sider med, ja så er og bliver min data serverside.

Det primære med denne tråd var blot at finde ud af om det var helt hen i vejret at bruge dette lille trick og det lader det jo til ikke skulle være noget problem i.
Avatar billede ebusiness Nybegynder
19. juni 2009 - 18:19 #8
Smart trick, men jeg ville nu nok foretrække cookies så længe der er plads nok i dem.
Avatar billede erikjacobsen Ekspert
19. juni 2009 - 19:34 #9
Nu har jeg ikke lige fået testet, men skifter jeg til en webside på et andet domæne vil jeg vel kunne aflæse værdierne, hvis de er anbragt på denne måde. Det gælder ikke ved cookies (og sessions baseret på cookies).
Avatar billede websam Nybegynder
19. juni 2009 - 20:16 #10
ebusiness >>
Som jeg har forstået det kan du kun lave 4 cookies af 20 kb hvilket jo også er en del, ikke desto mindre syntes jeg stadigt det er et smart trick ;o)

Erik >>
Det kan du ja eller i hvert fald så længe at du har samme browser vindue åbent, så ikke noget med at gemme sensitive data på denne måde, men det gør man jo heller ikke i cookies/sessions ;o)
Avatar billede ebusiness Nybegynder
19. juni 2009 - 22:36 #11
Det er sådan set omvendt, 20 cookies på op til 4kB tilsammen er den sikre grænse.
Avatar billede websam Nybegynder
20. juni 2009 - 10:30 #12
Ok, havde lige læst det omvendt ;o)

arne og erik smid et svar.
Avatar billede erikjacobsen Ekspert
20. juni 2009 - 10:39 #13
Jeg samler slet ikke på point, tak.

"så ikke noget med at gemme sensitive data på denne måde,"  ... nej, men problemet opstår allerede, når man kan finde ud af om en person har besøgt en bestemt hjemmeside, på en anden, ikke-relateret, hjemmeside.

(Og det er der så allerede nogle sjove hacks til, men man behøver jo ikke ligefrem forstærke problemet)
Avatar billede websam Nybegynder
20. juni 2009 - 10:47 #14
I mit tilfælde er der tale om en menu på en admin del. Når www.minside.dk/admin/ forlades tømmer jeg indholdet jeg har gemt så der ikke trækkes noget med videre til andre sider.

Men klart er det et trick til at lave client side sessions med som man skal bruge med omtanke ;o)
Avatar billede erikjacobsen Ekspert
20. juni 2009 - 10:57 #15
Forlades?  Også hvis brugeren bare skriver et andet domænenavn i adresselinien?
Avatar billede websam Nybegynder
20. juni 2009 - 11:09 #16
Ja der har du fat i noget, i det tilfælde kan jeg ikke gøre så meget.
Avatar billede arne_v Ekspert
22. juni 2009 - 03:11 #17
svar fra mig
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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