/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Sessions
Fra : peter hansen


Dato : 24-01-04 02:48

Er det muligt at få en liste over aktive sessions med en asp-kommando?
(muligvis et dumt spørgsmål)

// Peter



 
 
Torben Brandt (24-01-2004)
Kommentar
Fra : Torben Brandt


Dato : 24-01-04 03:39

peter hansen skrev:
> Er det muligt at få en liste over aktive sessions med en asp-kommando?
> (muligvis et dumt spørgsmål)

På ingen måde et dumt spørgsmål!
Jeg tror svaret er nej, men jeg ved det ikke med sikkerhed. Min
begrundelse går på at der ikke umiddelbart kan være forbindelse fra en
bruger (session) til en anden brugers session-variable. For
session-variable bruger netop til data, der kun vedrører den ene bruger.
Hvis der kunne var det risikabelt at gemme f.eks. kodeord i
session-variable.

En metode er at opdatere en application-variabel med de data for de
sessions, der er på siden.

Hvis du specificerer hvad det skal bruges til - f.eks. "hvilke brugere
er logget ind og stadig online på min chat" så er det nok nemmere at
løse problemet...

/Torben


peter hansen (24-01-2004)
Kommentar
Fra : peter hansen


Dato : 24-01-04 12:57

> På ingen måde et dumt spørgsmål!
> Jeg tror svaret er nej, men jeg ved det ikke med sikkerhed. Min
> begrundelse går på at der ikke umiddelbart kan være forbindelse fra en
> bruger (session) til en anden brugers session-variable. For
> session-variable bruger netop til data, der kun vedrører den ene bruger.
> Hvis der kunne var det risikabelt at gemme f.eks. kodeord i
> session-variable.

Hehe... jeg siger ikke at jeg vil misbruge informationerne men det kan man
vidst godt kalde det list alligevel...

Fx fra et profilsite hvis der bliver linket ud til fx et site på min egen
server så kunne det være sjaw nok at få en liste over de aktive Sessions (de
ryger med over ved linkningen) og så få dem udskrevet.
Du er selv inde på ulempen og derfor tror jeg heller ikke det kan lade sig
gøre - derfor spørgsmålet

> Hvis du specificerer hvad det skal bruges til - f.eks. "hvilke brugere
> er logget ind og stadig online på min chat" så er det nok nemmere at
> løse problemet...

Det var som sådan ikke det der var problemet - har skrevet det ovenover :D

// Peter



pepss (24-01-2004)
Kommentar
Fra : pepss


Dato : 24-01-04 13:41


"peter hansen" skrev
>
> Hehe... jeg siger ikke at jeg vil misbruge informationerne men det kan man
> vidst godt kalde det list alligevel...
>
> Fx fra et profilsite hvis der bliver linket ud til fx et site på min egen
> server så kunne det være sjaw nok at få en liste over de aktive Sessions
(de
> ryger med over ved linkningen) og så få dem udskrevet.
> Du er selv inde på ulempen og derfor tror jeg heller ikke det kan lade sig
> gøre - derfor spørgsmålet

det kunne jo også være at indehaveren af "profilsite" ikke var så glad for
det!


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk



peter hansen (24-01-2004)
Kommentar
Fra : peter hansen


Dato : 24-01-04 15:12


"pepss" <olefriis@privat.dk> wrote in message
news:butp5g$crj$1@sunsite.dk...
>
> "peter hansen" skrev
> >
> > Hehe... jeg siger ikke at jeg vil misbruge informationerne men det kan
man
> > vidst godt kalde det list alligevel...
> >
> > Fx fra et profilsite hvis der bliver linket ud til fx et site på min
egen
> > server så kunne det være sjaw nok at få en liste over de aktive Sessions
> (de
> > ryger med over ved linkningen) og så få dem udskrevet.
> > Du er selv inde på ulempen og derfor tror jeg heller ikke det kan lade
sig
> > gøre - derfor spørgsmålet
>
> det kunne jo også være at indehaveren af "profilsite" ikke var så glad for
> det!

Jeg ved det men da jeg selv skal igang med noget lign så var det egentlig
også for at se om det kunne lade sig gøre at hente sessions (for så ville
jeg da overveje en strategi der tømte dem når der blev linket ud af
huset)... at ejeren af profilsitet som jeg omtalte måske ikke tømmer sine
sessions kan på ingen måde være mit problem og at jeg har mulighed - hvis
jeg har - så kan jeg som sådan ikke se andre problemer end at han ikke
overholder dataloven og beskytter brugerne...

Men spørgsmålet er stadig - kan det og med hvilken kommando ?



Jesper Stocholm (24-01-2004)
Kommentar
Fra : Jesper Stocholm


Dato : 24-01-04 15:15

peter hansen wrote :

> Jeg ved det men da jeg selv skal igang med noget lign så var det
> egentlig også for at se om det kunne lade sig gøre at hente sessions
> (for så ville jeg da overveje en strategi der tømte dem når der blev
> linket ud af huset)... at ejeren af profilsitet som jeg omtalte måske
> ikke tømmer sine sessions kan på ingen måde være mit problem og at jeg
> har mulighed - hvis jeg har - så kan jeg som sådan ikke se andre
> problemer end at han ikke overholder dataloven og beskytter
> brugerne...
>
> Men spørgsmålet er stadig - kan det

Nej - du har ikke adgang til andre brugeres sessioner - heller ikke
session-id.

> og med hvilken kommando ?

Du er selv nødt til at opbygge logikken til det, dvs

Ved login:
   Indsæt session-id samt anden data i "datalag"
Ved visning af brugere:
   Loop igennem data og udskrive til bruger
Ved logout/session slut:
   Slet session-id og anden data i "datalag".

Hvis du håndterer det hele "in memory" i din applikation, så er det ikke
svært at lave.

--
Jesper Stocholm
http://stocholm.dk


peter hansen (24-01-2004)
Kommentar
Fra : peter hansen


Dato : 24-01-04 15:33

[CUT]
> > Men spørgsmålet er stadig - kan det
>
> Nej - du har ikke adgang til andre brugeres sessioner - heller ikke
> session-id.
>
> > og med hvilken kommando ?
>
> Du er selv nødt til at opbygge logikken til det, dvs
>
> Ved login:
> Indsæt session-id samt anden data i "datalag"
> Ved visning af brugere:
> Loop igennem data og udskrive til bruger
> Ved logout/session slut:
> Slet session-id og anden data i "datalag".
>
> Hvis du håndterer det hele "in memory" i din applikation, så er det ikke
> svært at lave.
>
> --
> Jesper Stocholm
> http://stocholm.dk
>

Jesper Stocholm har talt! - tak for det...

// Peter



peter hansen (24-01-2004)
Kommentar
Fra : peter hansen


Dato : 24-01-04 15:50

[CUT]
> > Nej - du har ikke adgang til andre brugeres sessioner - heller ikke
> > session-id.
> >
[CUT]

Hovhov... det kan så forståes på tre måder:

1: jeg har ikke adgang foruden jeg laver en manuel bruteforce
2: jeg har ikke adgang af sikkerhedsmæssige årsager
3: sessionen bliver ikke overfør.

Fakta er at hvis jeg linker ud fra sitet til ethvert andet site - fx angiver
et link i min profil på profilsitet og der så klikkes på det og linket
åbnes, så kan jeg skrive profilsites url i det nye vindue og stadigt være
logget ind. Ergo så er min session gemt og overført til det nye link (logon
og evt andet brugerdata).

Spørgsmålet er stadigvæk:

Er sessionen gemt for mig i kraft af at jeg ikke kan gætte den eller er den
gemt af andre sikkerhedsmæssige årsager så jeg ikke kan få fat i den? - for
det er som skrevet helt klart at min logon-session er gemt i og med at jeg
kan åbne sitet i et andet vindue som jeg ikke har logget på...

// Peter



Torben Brandt (24-01-2004)
Kommentar
Fra : Torben Brandt


Dato : 24-01-04 16:06

peter hansen skrev:
> 1: jeg har ikke adgang foruden jeg laver en manuel bruteforce
> 2: jeg har ikke adgang af sikkerhedsmæssige årsager
> 3: sessionen bliver ikke overfør.
>
> Fakta er at hvis jeg linker ud fra sitet til ethvert andet site - fx angiver
> et link i min profil på profilsitet og der så klikkes på det og linket
> åbnes, så kan jeg skrive profilsites url i det nye vindue og stadigt være
> logget ind. Ergo så er min session gemt og overført til det nye link (logon
> og evt andet brugerdata).

Sessions virker på følgende måde:
- Første gang man besøger et domæne får en et nummer.
- Hver gang man besøger /samme/ domæne sendes nummeret med
- De data, der ligger i session-variablene ligger /kun/ på serveren
- Selv om du besøger andre domæner, så huske numrene til de allerede
besøgte domæner - men nummeret til domæne1 er skjult for domæne2.

Det du beskriver herover er:
- Du besøger "profilsite" og får et nummer
- Du logger ind - dvs på "profilsite" ved de, at dit nummer er logget ind
- Du følger et link til et andet domæne - men du har ikke været der før,
så intet nummer sendes med. Du modtager dog et nyt nummer.
- Du vender tilbage til "profilsite". Her har brugeren et nummer, så det
sender han med. "profilsite" ved at det nummer er logget ind.

For at sin server skulle kunne se session-data, der ligger på
"profilsitet" skal du kende brugerens nummer til det domæne. Men
nummeret sendes kun med til det domæne det tilhører.

> Spørgsmålet er stadigvæk:
> Er sessionen gemt for mig i kraft af at jeg ikke kan gætte den eller er den
> gemt af andre sikkerhedsmæssige årsager så jeg ikke kan få fat i den? - for
> det er som skrevet helt klart at min logon-session er gemt i og med at jeg
> kan åbne sitet i et andet vindue som jeg ikke har logget på...

Det eneste måde det skulle kunne lade sig høre er at gætte på numre på
"profilsitet" indtil du finder et nummer, der er logget ind.
Det er i praksis /umuligt/ at gætte sig igennem de mange, mange mulige
numre.

Så altså kan det ikke lade sig gøre, fordi du ikke kan gætte hvilke
numre, der er tilknyttet de aktive sessions på et andet domæne.

/Torben


peter hansen (24-01-2004)
Kommentar
Fra : peter hansen


Dato : 24-01-04 16:42

> Sessions virker på følgende måde:
> - Første gang man besøger et domæne får en et nummer.
> - Hver gang man besøger /samme/ domæne sendes nummeret med
> - De data, der ligger i session-variablene ligger /kun/ på serveren
> - Selv om du besøger andre domæner, så huske numrene til de allerede
> besøgte domæner - men nummeret til domæne1 er skjult for domæne2.

Fair and square

> Det du beskriver herover er:
> - Du besøger "profilsite" og får et nummer
> - Du logger ind - dvs på "profilsite" ved de, at dit nummer er logget ind
> - Du følger et link til et andet domæne - men du har ikke været der før,
> så intet nummer sendes med. Du modtager dog et nyt nummer.
> - Du vender tilbage til "profilsite". Her har brugeren et nummer, så det
> sender han med. "profilsite" ved at det nummer er logget ind.

Jeg skal lige være sikker på at vi taler om det samme så jeg beskriver lige
det hele en gang til og stiller så lige et spørgsmål til din beskrivelse
oven over:

* Jeg logger ind, lad os kalde det domæne1 (profilsitet)
* I min profil linker jeg til et andet site på domæne2 (lad os sige
www.google.com)
* Jeg klikker på linket og et nyt vindue åbnes med en ny URL -
www.google.com
* Oppe i adressebaren sletter jeg nu www.google.com og overskriver den med
URL'en til domæne1 (altså profilsites url)
* Sitet åbnes og er identisk med domæne1-vinduet/jeg behøves ikke at logge
ind

For at overstående kan lade sig gøre må der da være sendt en eller anden
form for kommunikation mellem domæne1 og domæne2 der gør at jeg ikke behøves
at logge ind to gange... eller hvad?
For hvis det er som du beskriver så gemmes min session på serveren og så
ville jeg da mene at jeg skulle få et nyt sessionid når jeg overskriver
www.google.com med domæne1's URL og dermed et nyt login

I såfald vil jeg gerne have lidt flere detaljer om hvordan jeg automatisk
kan blive logget på uden at skrive bruger og pass bare ved at holde et
vindue aktivt som egentlig kom med en anden URL (www.google.com)


> For at sin server skulle kunne se session-data, der ligger på
> "profilsitet" skal du kende brugerens nummer til det domæne. Men
> nummeret sendes kun med til det domæne det tilhører.

Det kan jeg i såfald ikke få til at passe med at jeg som sagt er logget ind
hvis jeg besøger sitet igennem vindue2/domæne2

> > Spørgsmålet er stadigvæk:
> > Er sessionen gemt for mig i kraft af at jeg ikke kan gætte den eller er
den
> > gemt af andre sikkerhedsmæssige årsager så jeg ikke kan få fat i den? -
for
> > det er som skrevet helt klart at min logon-session er gemt i og med at
jeg
> > kan åbne sitet i et andet vindue som jeg ikke har logget på...
>
> Det eneste måde det skulle kunne lade sig høre er at gætte på numre på
> "profilsitet" indtil du finder et nummer, der er logget ind.
> Det er i praksis /umuligt/ at gætte sig igennem de mange, mange mulige
> numre.

den omtalte ID er altså et servergeneret ID og er ikke specificeret - fx så
har jeg da set mit brugerID op til flere gange men det er ikke det vi taler
om her vel ?

> Så altså kan det ikke lade sig gøre, fordi du ikke kan gætte hvilke
> numre, der er tilknyttet de aktive sessions på et andet domæne.

Manuel bruteforce min ven, manuel bruteforce :D hehe...

// Peter



Torben Brandt (24-01-2004)
Kommentar
Fra : Torben Brandt


Dato : 24-01-04 16:59

peter hansen skrev:

> Jeg skal lige være sikker på at vi taler om det samme så jeg beskriver lige
> det hele en gang til og stiller så lige et spørgsmål til din beskrivelse
> oven over:
>
> * Jeg logger ind, lad os kalde det domæne1 (profilsitet)
> * I min profil linker jeg til et andet site på domæne2 (lad os sige
> www.google.com)
> * Jeg klikker på linket og et nyt vindue åbnes med en ny URL -
> www.google.com
> * Oppe i adressebaren sletter jeg nu www.google.com og overskriver den med
> URL'en til domæne1 (altså profilsites url)
> * Sitet åbnes og er identisk med domæne1-vinduet/jeg behøves ikke at logge
> ind
>
> For at overstående kan lade sig gøre må der da være sendt en eller anden
> form for kommunikation mellem domæne1 og domæne2 der gør at jeg ikke behøves
> at logge ind to gange... eller hvad?
> For hvis det er som du beskriver så gemmes min session på serveren og så
> ville jeg da mene at jeg skulle få et nyt sessionid når jeg overskriver
> www.google.com med domæne1's URL og dermed et nyt login
>
> I såfald vil jeg gerne have lidt flere detaljer om hvordan jeg automatisk
> kan blive logget på uden at skrive bruger og pass bare ved at holde et
> vindue aktivt som egentlig kom med en anden URL (www.google.com)

Jeg skal prøve:

I browseren ligger en tabel over de domæner du har besøgt siden
browseren blev åbnet. Sammen med hvert domæne ligger et nummer på din
session.

Jesper var lidt inde på det, men jeg tager den lige igen. Hvis du i IE
åbnet et nyt vindue med CTRL+N eller klikker på et link, der åbnet i det
nyt vindue, eller højreklikker og vælger Åbn i nyt vindue, så deler det
nye og det gamle vindue tabellen over domæner og numre.

- Med vindue 1 logger du ind på domæne 1. Vindue 1 får et nummer.
- I vindue 1 åbner du et nyt vindue (vindue 2) med domæne 2.
- De to vinduer deler tabellen, så nu har begge vinduer domæne 1 og
domæne 2 i deres tabel.
- I vindue 2 går du nu til domæne 1, men vindue 1 har allerede lagt det
domæne i den fælles tabel, så den medsender det nummer, som allerede er
logget ind.

>>For at sin server skulle kunne se session-data, der ligger på
>>"profilsitet" skal du kende brugerens nummer til det domæne. Men
>>nummeret sendes kun med til det domæne det tilhører.
>
> Det kan jeg i såfald ikke få til at passe med at jeg som sagt er logget ind
> hvis jeg besøger sitet igennem vindue2/domæne2

Der er ikke forskel på vindue 1 og vindue 2, når vindue 2 er åbnet som
beskrevet herover.

> den omtalte ID er altså et servergeneret ID og er ikke specificeret - fx så
> har jeg da set mit brugerID op til flere gange men det er ikke det vi taler
> om her vel ?

Niks. Jesper har givet et eksempel og det er på ingen måde til at gætte.
Session.SessionID er derimod fortløbende (så vidt jeg kan se i min log),
men det har ikke noget med det andet at gøre.

> Manuel bruteforce min ven, manuel bruteforce :D hehe...

Tja, men det skal klares inden sessionen løber ud, så mon ikke du får
lagt serveren ned inden du finder et brugbar nummer :)

/Torben


Jesper Stocholm (24-01-2004)
Kommentar
Fra : Jesper Stocholm


Dato : 24-01-04 18:48

peter hansen wrote :

> Jeg skal lige være sikker på at vi taler om det samme så jeg beskriver
> lige det hele en gang til og stiller så lige et spørgsmål til din
> beskrivelse oven over:
>
> * Jeg logger ind, lad os kalde det domæne1 (profilsitet)
> * I min profil linker jeg til et andet site på domæne2 (lad os sige
> www.google.com)
> * Jeg klikker på linket og et nyt vindue åbnes med en ny URL -
> www.google.com
> * Oppe i adressebaren sletter jeg nu www.google.com og overskriver den
> med URL'en til domæne1 (altså profilsites url)
> * Sitet åbnes og er identisk med domæne1-vinduet/jeg behøves ikke at
> logge ind
>
> For at overstående kan lade sig gøre må der da være sendt en eller
> anden form for kommunikation mellem domæne1 og domæne2 der gør at jeg
> ikke behøves at logge ind to gange... eller hvad?

En session er blot en ganske almindelig cookie, der kun "lever" indtil
den pågældende session på serveren udløber (det specificeres af
udvikleren/administrator på serveren) eller du lukker dit vindue.

Eksempel:

Ved login modtager din Mozilla en cookie fra serveren. Denne cookie
indeholder et session-id. Da cookies for et specifikt site sendes med
alle forespørgsler til serveren, sendes dette session-id altså også med
hver gang. Når du fx skriver

Session("brugernavn") = "Jesper"

, så bruger serveren det session-id du sender med, slår op i sin tabel
og tilføjer "brugernavn=Jesper" til lige netop _dint_ session-i. Når du
så skriver

Response.Write Session("brugernavn")

, så bruger serveren det session-id du medsender, slår op i sin tabel
efter session-id og udtrækker "brugernavn=Jesper" og skriver det til
browseren.

Der kan ske to ting (mindst):

1.
Hvis du så lukker din browser (alle vinduer), så slettes din cookie med
dit session-id automatisk. Når du så igen går ind på siden, så modtager
du nu et _nyt_ session-id. Når du så går ind på en side med koden

Response.Write Session("brugernavn")

, så slår serveren op efter dit _nye_ session-id, men der findes nu
ingen "brugernavn" i tabellen med dit nye session-id. Der serveres
derfor et tomt resultat.

2.
Du har logget ind på en side og går derefter til frokost. I mellemtiden
overskrides sessionens levetid på serveren, og alle data for din session
slettes fra tabellen. Når du er kommet tilbage fra frokost og forsøger
at bruge siden, så sender du dit _oprindelige_ session-id med. Din
browser kan nemlig ikke vide, om sessionen på serveren er timet ud eller
ej. Serveren modtager derfor nu et _gammelt_ session-id og slår op i sin
tabel. Men da dine data jo er blevet slettet, findes der ikke noget, og
der udskrives et tomt resultat.

> den omtalte ID er altså et servergeneret ID og er ikke specificeret -
> fx så har jeg da set mit brugerID op til flere gange men det er ikke
> det vi taler om her vel ?

Nej, dit brugerId er noget den enkelte udvikler vælger - fx et
brugernavn eller din emailadresse. Generering af session-ids har man mig
bekendt ikke nogen mulighed for at manipulere.

--
Jesper Stocholm
http://stocholm.dk

Gør Christiania en tjeneste og køb din hash et andet sted.

peter hansen (25-01-2004)
Kommentar
Fra : peter hansen


Dato : 25-01-04 15:22

Rent bord tak!

Aaaah nu forstår jeg det hele så :D men skal lige bekræftes hehe

Det omtalte SessionID er altså et genereret ID som serveren laver og ikke et
som jeg er herre over.SessionID'et er et en vertificering og en måde at
serveren tjekker identiteten på clienten.
Jeg er tydeligvis blevet distraheret af denne kommando

bruger = Session([ID])

som nok har generet en del og ødelagt opfattelsen af hvad et ID var/er

Men alt i alt så overføres de 'andre' Sessions altså fx

brugernavn = Session("brugernavn")

til det nye domæne der linkes til eller? eller nej det gør de jo så ikke i
og med at de kun kan genkendes fordi der lige præcis linkes tilbage til det
gamle site igen...

Min pointe er:

Hvis jeg linker ud af min profil til min egen server og overskriver adressen
med profilsites så vil det kun blive genkendt pga ID'en. Da min server (som
der linkes ud til) ikke har oprettet den ID vil min server ikke kunne bruge
det til noget - heller ikke selvom jeg fx havde en tro kopi af profilsitet
liggende...

Det afgørende er at profilsites server kun genkender og kan logge ind anden
gang fordi det genkender sessionen. Hvis jeg skal gøre kunsten efter skal
jeg finde lige præcis det ID som der generes af profilsite-serveren og have
indflydelse på hvordan skal generes med hvilket Sessions([ID])'er osv

Jeps... jeg har fattet det - jeg er super - tak for hjælpen og tålmodigheden

// Peter



Jesper Stocholm (25-01-2004)
Kommentar
Fra : Jesper Stocholm


Dato : 25-01-04 17:50

peter hansen wrote :

> Rent bord tak!
>
> Aaaah nu forstår jeg det hele så :D men skal lige bekræftes hehe
>
> Det omtalte SessionID er altså et genereret ID som serveren laver og
> ikke et som jeg er herre over.SessionID'et er et en vertificering og
> en måde at serveren tjekker identiteten på clienten.
> Jeg er tydeligvis blevet distraheret af denne kommando
>
> bruger = Session([ID])
>
> som nok har generet en del og ødelagt opfattelsen af hvad et ID var/er
>
> Men alt i alt så overføres de 'andre' Sessions altså fx
>
> brugernavn = Session("brugernavn")
>
> til det nye domæne der linkes til eller? eller nej det gør de jo så
> ikke i og med at de kun kan genkendes fordi der lige præcis linkes
> tilbage til det gamle site igen...

Måske hjælper det dig, hvis du tænker på, at det session-id [1] du
modtager fra serveren, gemmes i en cookie på klienten. For hver eneste
forespørgsel jeg sender til domæne1, sender jeg også alle informationer
fra mine cookies med, der passer på lige netop domæne1. Det er bla.
derfor det ikke er en god idé at gemme aaalt for mange informationer i
cookies. Dette er noget browseren holder styr på. Når du så klikker ind
på et nyt domæne2, så har de ikke adgang til det session-id du havde på
domæne1, da disse informationer ganske enkelt ikke sendes med til
domæne2. Hvis du så manuelt igen skriver domæne1 i det nye vindue, så
kigger din browser i sine cookies for at se, om der er nogle, der passer
på domæne1. Disse informationer sendes så igen til domæne1 - og i dette
tilfælde dit session-id, så du opfattes som "logget ind".

.... jeg tror jeg er ved at nå grænsen for mine pædagogiske færdigheder :)

[1] Som kan opfattes som den primære nøgle til _dine_ informationer i
serverens session-tabel

--
Jesper Stocholm

Gør Christiania en tjeneste - køb din hash et andet sted.

peter hansen (25-01-2004)
Kommentar
Fra : peter hansen


Dato : 25-01-04 21:24


"Jesper Stocholm" <j@stocholm.invalid> wrote in message
news:Xns947BB56D3D081stocholmdk@192.38.208.86...
> peter hansen wrote :
>
> > Rent bord tak!
> >
> > Aaaah nu forstår jeg det hele så :D men skal lige bekræftes hehe
> >
> > Det omtalte SessionID er altså et genereret ID som serveren laver og
> > ikke et som jeg er herre over.SessionID'et er et en vertificering og
> > en måde at serveren tjekker identiteten på clienten.
> > Jeg er tydeligvis blevet distraheret af denne kommando
> >
> > bruger = Session([ID])
> >
> > som nok har generet en del og ødelagt opfattelsen af hvad et ID var/er
> >
> > Men alt i alt så overføres de 'andre' Sessions altså fx
> >
> > brugernavn = Session("brugernavn")
> >
> > til det nye domæne der linkes til eller? eller nej det gør de jo så
> > ikke i og med at de kun kan genkendes fordi der lige præcis linkes
> > tilbage til det gamle site igen...
>
> Måske hjælper det dig, hvis du tænker på, at det session-id [1] du
> modtager fra serveren, gemmes i en cookie på klienten. For hver eneste
> forespørgsel jeg sender til domæne1, sender jeg også alle informationer
> fra mine cookies med, der passer på lige netop domæne1. Det er bla.
> derfor det ikke er en god idé at gemme aaalt for mange informationer i
> cookies. Dette er noget browseren holder styr på. Når du så klikker ind
> på et nyt domæne2, så har de ikke adgang til det session-id du havde på
> domæne1, da disse informationer ganske enkelt ikke sendes med til
> domæne2. Hvis du så manuelt igen skriver domæne1 i det nye vindue, så
> kigger din browser i sine cookies for at se, om der er nogle, der passer
> på domæne1. Disse informationer sendes så igen til domæne1 - og i dette
> tilfælde dit session-id, så du opfattes som "logget ind".
>
> ... jeg tror jeg er ved at nå grænsen for mine pædagogiske færdigheder :)
>
> [1] Som kan opfattes som den primære nøgle til _dine_ informationer i
> serverens session-tabel

Men så var det også ræddi det jeg skrev

> Jesper Stocholm
>
> Gør Christiania en tjeneste - køb din hash et andet sted.


// Peter

--
"Anders Fogh er jo ikke andet end en personificering af det fortrængte,
ubevidste jeg"
- Sigmund Freud om Djævlen



Jesper Stocholm (25-01-2004)
Kommentar
Fra : Jesper Stocholm


Dato : 25-01-04 22:20

peter hansen wrote :

[snip]

> Men så var det også ræddi det jeg skrev

fint :)

--
Jesper Stocholm

Gør Christiania en tjeneste - køb din hash et andet sted.

Jesper Stocholm (24-01-2004)
Kommentar
Fra : Jesper Stocholm


Dato : 24-01-04 16:04

peter hansen wrote :

> [CUT]
>> > Nej - du har ikke adgang til andre brugeres sessioner - heller ikke
>> > session-id.
>> >
> [CUT]
>
> Hovhov... det kan så forståes på tre måder:
>
> 1: jeg har ikke adgang foruden jeg laver en manuel bruteforce
> 2: jeg har ikke adgang af sikkerhedsmæssige årsager
> 3: sessionen bliver ikke overfør.

Jeg må indrømme, at jeg ikke er klar over, hvordan du henter data fra din
egen session via et session-id (som du i øvrigt kan hente fra dine
cookies). Her må andre træde til.

> Fakta er at hvis jeg linker ud fra sitet til ethvert andet site - fx
> angiver et link i min profil på profilsitet og der så klikkes på det
> og linket åbnes, så kan jeg skrive profilsites url i det nye vindue og
> stadigt være logget ind. Ergo så er min session gemt og overført til
> det nye link (logon og evt andet brugerdata).

Jeg tror ikke, at du kan konkludere dette på tværs af alle browsere. I IE
gemmes sessions på applikationsniveau, dvs alle instancer af IE du åbner,
har adgang til den samme session. Jeg er dog usikker på, om dette også
gælder, hvis du starter to instancer op af IE på hver sin "tråd" i
Windows.

> Spørgsmålet er stadigvæk:
>
> Er sessionen gemt for mig i kraft af at jeg ikke kan gætte den eller
> er den gemt af andre sikkerhedsmæssige årsager så jeg ikke kan få fat
> i den? - for det er som skrevet helt klart at min logon-session er
> gemt i og med at jeg kan åbne sitet i et andet vindue som jeg ikke har
> logget på...

Hvis du kan gætte en anden brugers sessions-id, så kan jeg ikke se,
hvordan serveren kan skelne imellem dette og "den anden bruger". Jeg
kiggede lige i mine cookies, og her gemmes en session som en cookie med
følgende data:

Name: ASPSESSIONIDAAQCCRRA
Content: IAIAOELAOPDGEENHHLPDDGGA

Hvis vi nu antager, at disse data ligger jænt spredt i hele intervallet
af mulige ids, så skal du løseligt brute-force 2^127 værdier for at finde
et match. Det er på godt dansk ikke muligt.

Men: kan det ikke være ligemeget, hvorfor du ikke kan få fat i andre
sessions? Faktum er, at det ikke kan lade sig gøre. Derfor er du nødt til
at gemme nogle data for hver bruger i et område, hvor alle brugere kan
læse - fx i en Application variabel.

--
Jesper Stocholm
http://stocholm.dk

Jesper Stocholm (24-01-2004)
Kommentar
Fra : Jesper Stocholm


Dato : 24-01-04 15:57

peter hansen wrote :

>> Du er selv nødt til at opbygge logikken til det, dvs
>>
>> Ved login:
>> Indsæt session-id samt anden data i "datalag"
>> Ved visning af brugere:
>> Loop igennem data og udskrive til bruger
>> Ved logout/session slut:
>> Slet session-id og anden data i "datalag".
>>
>> Hvis du håndterer det hele "in memory" i din applikation, så er det ikke
>> svært at lave.

> Jesper Stocholm har talt! - tak for det...

?

Husk at det skrevne medie ikke ubetinget er velegnet til at overføre
information om humør og lignende. Fx. kan jeg ikke direkte se, om du var
sur eller glad, da du skrev ovenstående.

--
Jesper Stocholm
http://stocholm.dk

peter hansen (24-01-2004)
Kommentar
Fra : peter hansen


Dato : 24-01-04 16:30

[CUT]
>
> Husk at det skrevne medie ikke ubetinget er velegnet til at overføre
> information om humør og lignende. Fx. kan jeg ikke direkte se, om du var
> sur eller glad, da du skrev ovenstående.
>

Jeg var glad :D for du plejer altid af ha' ret de få gange jeg har haft brug
for hjælp og spurgt ng'en
Jeg er faktisk næsten altid glad :D

// Peter



Søg
Reklame
Statistik
Spørgsmål : 177549
Tips : 31968
Nyheder : 719565
Indlæg : 6408822
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste