|
| Sessions og sikkerhed Fra : Henrik Hejbøl Jensen |
Dato : 29-01-02 00:45 |
|
Hej NG
Jeg har ( som så mange andre ) lavet en loginfunktion på min hjemmeside hvor
en session ( Session("erloggetind") bliver sat til "jeps"
Så det ser sådan ud
If rs("brugernavn") = Request.Form("brugernavn") AND rs("pwd") =
Request.Form("pwd") Then
Session("erloggetind")="jeps"
Else
Session("erloggetind")="nix"
End If
Så checker jeg på alle mine beskyttede sider med algoritmen:
If Session("erloggetind")<>"jeps" Then
Response.Redirect("index.asp?indhold=notloggedon")
End If
Så er mit spørgsmål.. Kan folk med et eller andet program "aflæse" hvilke
sessions der kører i deres browser? for kan man det og kan man gætte sig til
at der skal stå jeps i kan man jo bare på sin egen hjemmeside starte en
session("erloggetind")="jeps" og så hoppe over på mine beskyttede sider...
og så burde man jo kunne komme ind.. Er denne betragtning helt forkert?
mvh. Henrik
| |
Jørn Andersen (29-01-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 29-01-02 00:55 |
|
On Tue, 29 Jan 2002 00:45:23 +0100, "Henrik Hejbøl Jensen"
<henrik@hejboel.dk> wrote:
>Så er mit spørgsmål.. Kan folk med et eller andet program "aflæse" hvilke
>sessions der kører i deres browser? for kan man det og kan man gætte sig til
>at der skal stå jeps i kan man jo bare på sin egen hjemmeside starte en
>session("erloggetind")="jeps" og så hoppe over på mine beskyttede sider...
>og så burde man jo kunne komme ind.. Er denne betragtning helt forkert?
Ja, det er den heldigvis - sessions er knyttet til den maskine de er
oprettet på.
Prøv fx selv, hvis du har en webserver på din egen maskine og en anden
på et webhotel eller bare en anden server.
Selv hvis du laver de to websider ens og logger ind på den ene, så vil
du blive afvist på den anden.
Good luck,
Jørn
| |
Henrik Hejbøl Jensen (29-01-2002)
| Kommentar Fra : Henrik Hejbøl Jensen |
Dato : 29-01-02 01:50 |
|
> Prøv fx selv, hvis du har en webserver på din egen maskine og en anden
> på et webhotel eller bare en anden server.
> Selv hvis du laver de to websider ens og logger ind på den ene, så vil
> du blive afvist på den anden.
Ok. mange tak, så vil jeg sove roligt uden at tænke over større
adgangsalgoritmer
\Henrik
| |
Jakob Andersen (29-01-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 29-01-02 08:49 |
|
"Henrik Hejbøl Jensen" <henrik@hejboel.dk> wrote in message
news:Pnl58.7813$Eu2.856863@news010.worldonline.dk...
> If rs("brugernavn") = Request.Form("brugernavn") AND rs("pwd") =
> Request.Form("pwd") Then
> Session("erloggetind")="jeps"
> Else
> Session("erloggetind")="nix"
> End If
Undkyld jeg spørger men trækker du alle brugere ud? Ville det ikke være
nemmere at tjekke direkte op i mod databasen sådan her:
<%
Set objRS = objConn.Execute( "SELECT brugernavn FROM tblBrugere WHERE
brugernavn = '" & Replace(Request.Form("brugernavn"),"'","''") & "' AND pwd
= '" & Replace(Request.Form("pwd"),"'","''") & "'")
If objRS.BOF Then
Session("erloggetind") = false
Else
Session("erloggerind") = true
End if
Set objRS = Nothing
%>
PS: Hvorfor ikke bruge false/true det er jo det de er der for istedet for at
opfinde sine egne boolske værdier
--
Jakob Andersen
Er du god til ASP og mangler du et job?
Så kontakt mig på jta@advice.dk
| |
Lars Hoffmann (29-01-2002)
| Kommentar Fra : Lars Hoffmann |
Dato : 29-01-02 08:56 |
|
Henrik Hejbøl Jensen <henrik@hejboel.dk> escribió en el mensaje de
noticias Pnl58.7813$Eu2.856863@news010.worldonline.dk...
>
> Så er mit spørgsmål.. Kan folk med et eller andet program "aflæse"
hvilke
> sessions der kører i deres browser? for kan man det og kan man gætte
sig til
> at der skal stå jeps i kan man jo bare på sin egen hjemmeside starte
en
> session("erloggetind")="jeps" og så hoppe over på mine beskyttede
sider...
> og så burde man jo kunne komme ind.. Er denne betragtning helt
forkert?
Heldigvis er din betragtning helt hen i vejret ). Aarsagen er at
selve vaerdien af en session variabel ikke gemmes paa klienten, men
derimod paa serveren. Paa klienten bliver der gemt en cookie der
indeholder sessionens ID, men altsaa ikke sessionens variabler.
Med venlig hilsen
Lars Hoffmann
| |
Anders Lund (29-01-2002)
| Kommentar Fra : Anders Lund |
Dato : 29-01-02 08:57 |
|
Henrik Hejbøl Jensen <henrik@hejboel.dk> skrev i en
nyhedsmeddelelse:Pnl58.7813$Eu2.856863@news010.worldonline.dk...
> Hej NG
> If Session("erloggetind")<>"jeps" Then
> Response.Redirect("index.asp?indhold=notloggedon")
> End If
Jeg tror faktisk der er en sikkerheds fejl her, jeg mener at have hørt at
der er muligt at omgå en response.redirect, i hvert fal hvis den ikke står i
toppen af siden.
Vil du være på den sikre side, så skriv
If Session("erloggetind")<>"jeps" Then
response.clear
Response.Redirect("index.asp?indhold=notloggedon")
response.end 'Så vidt jeg ved, ville denne linie aldrig blive kørt, men
man kan aldrig være FOR sikker.'
End If
| |
Lars Hoffmann (29-01-2002)
| Kommentar Fra : Lars Hoffmann |
Dato : 29-01-02 10:07 |
|
Anders Lund <anders@itnews.dk> escribió en el mensaje de noticias
3c5655cd$0$245$edfadb0f@dspool01.news.tele.dk...
>
> > If Session("erloggetind")<>"jeps" Then
> > Response.Redirect("index.asp?indhold=notloggedon")
> > End If
>
> Jeg tror faktisk der er en sikkerheds fejl her, jeg mener at have hørt
at
> der er muligt at omgå en response.redirect, i hvert fal hvis den ikke
står i
> toppen af siden.
> Vil du være på den sikre side, så skriv
Det er et serverside redirect, det kan ikke omgaas fra klienten. Maaske
har du hoert at meta tegget refresh, eller javascriptet
document.location kan omgaas (hvilket naturligvis er korrekt)?
Med venlig hilsen
Lars Hoffmann
| |
|
|