webForumDet fria alternativet

Inloggnings session

5 svar · 399 visningar · startad av Calevan

CalevanMedlem sedan maj 20031 173 inlägg
#1

Hej!

Jag vet inte hur ni alla har löst problemet med inloggning till era "säkra" sidor, men som jag sett det är det vanligt att när någon gör en lyckad inloggning så sätts en session till ett värde. På de "säkra" sidorna kollar man sedan om denna sessionen har ett värde eller ej. Jag undrar hur bra detta är egentligen. Säg att man använder sig av sessionen UserID:

Session("userID")

Så är det ju inte så svårt att sätta den till något själv, och komma rakt in på sidan. En variant jag testat är att skriva så här:

Session("UserInne") = "K4DJGj43"

som då gör att användaren måste gissa exakt rätt "lösenord" för att det ska funka. men det känns inte helt bra det heller. någon kanske kan kolla ens sessions? om inte annat så skulle man kunna tänka sig att man har ett rullande lösenord, men då känns det som det blir problem när man ska kolla det...

några förslag?

tack! (obs, klockan är mycket så jag kan ha missat någon logisk lucka eller något :OO )

@ndersMedlem sedan juni 200032 969 inlägg
#2

Så är det ju inte så svårt att sätta den till något själv, och komma rakt in på sidan.

Hur hade du tänkt att användaren själv skulle kunna sätta värdet på sessionsvariabeln :q

Du kan bara sätta variabler med kod, om du har den sortens tillgång till servern. Och om användarna har det, då har du större säkerhetsproblem än sessionsvariabler om man säger så.

CalevanMedlem sedan maj 20031 173 inlägg
#3

ah, så session variabeln sitter på servern ja! just det ja, missade det. jag hade två olika inloggningar på samma server en gång och då var det lätt att gå förbi den ena... men hur tycker du man ska göra då? det räcker att kolla om Session("userID") finns eller inte då?

tack!

BiasseMedlem sedan aug. 2003480 inlägg
#4

Du kan väl ha en nivå inloggning istället för 2 olika och sen köra session timeout istället.
ex._____________________________________

Session.TimeOut=60

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/admin.mdb")&";pwd=????????"
Set RecSet = Server.CreateObject("ADODB.Recordset")

anvNamn = secure(Request.Form("anvnamn"))
losenord = secure(Request.Form("losenord"))

SQL = "SELECT niva FROM admin WHERE anvnamn='" & anvnamn & "' AND losenord='" & losenord &"'"
RecSet.Open SQL, Connect, 3, 3

If not RecSet.EOF Then
Session("niva") = RecSet("niva")

If RecSet("niva")="1" Then
strPage="hemligsida1.asp"
elseif RecSet("hemligsida2")="2" Then
strPage="vip.asp"

End If

' Här loggas IP när rätt lösenord och password angetts
SQL = "INSERT INTO iplogg([username],[ip],[loginstatus],[tid]) values ('"& anvnamn &"','"& Request.Servervariables("REMOTE_ADDR") &"','OK',#"& now() &"#)"
Connect.execute(SQL)

Response.Redirect strPage
else
' Här loggas IP när fel lösenrod och password angetts

query="INSERT INTO iplogg([username],[ip],[loginstatus],[tid]) values ('"& anvnamn &"','"& Request.Servervariables("REMOTE_ADDR") &"','Fail',#"& now() &"#)"
Connect.Execute(query)
end if
RecSet.Close : set recset = nothing
Connect.Close : set connect = nothing

Session("dinsession") = "fel användarnamn eller lösenord"
Response.Redirect "index.asp"
%>
_______________________________________________

Här har du även till iplogg.

Sen kan du skydda sidorna typ så här högst upp:

<%
If NOT Cint(Session("niva")) >=2 Then
Session("din session") = "Du måste logga in först!"
Response.Redirect "index.asp"
ELSE
end if
%>

@ndersMedlem sedan juni 200032 969 inlägg
#5

Calevan skrev:

men hur tycker du man ska göra då? det räcker att kolla om Session("userID") finns eller inte då?

Så länge den sessionsvariabeln har ett värde, så är man inloggad. Egentligen borde det alltså räcka att kolla om sessionsvariabeln har ett värde, dvs skilt från tom sträng.

Mvh

CalevanMedlem sedan maj 20031 173 inlägg
#6

@nders skrev:

Calevan skrev:

men hur tycker du man ska göra då? det räcker att kolla om Session("userID") finns eller inte då?

Så länge den sessionsvariabeln har ett värde, så är man inloggad. Egentligen borde det alltså räcka att kolla om sessionsvariabeln har ett värde, dvs skilt från tom sträng.

Mvh

tack! det var precis vad jag ville höra! :D

138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)