webForumDet fria alternativet

Hur förhindrar jag användare ifrån

ASP

11 svar · 283 visningar · startad av medialabs

Medlem sedan mars 20023 686 inlägg
Frågan#1

hur förhindrar jag användaren från att kunna komma åt en annas profil genom att ändra länken. visitkort.asp?id=1 är vad jag har och ändrar jag den till visitkort?id=2 så kommer jag åt den personens profil och kan ändra hans uppgifter. Hur förhindrar jag detta. Jag använder mig av en session som man får när man loggar in.

<%IF NOT Session("Authentication") = "yes" THEN
Response.Redirect "index.asp"
ELSE
%>
<%END IF%>

Medlem sedan dec. 200012 464 inlägg
#2

Lagra id i session, då behöver du inte skicka den i querystring heller.

Medlem sedan mars 20023 686 inlägg
#3

LarsG:

Är fortfarande ganska grön på detta, Hur ska jag lagra id i session?

Medlem sedan mars 20023 686 inlägg
#4

Så här ser index.asp sidans kod ut när man loggar in och får en session:

<%
Function SQLText(Value)
    If Len(Value) Then
        SQLText = "'" & Replace(Value, "'", "''") & "'"
    Else
        SQLText = "Null"
    End If
End Function

    Set Con = Server.CreateObject("ADODB.Connection")
    Con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("client.mdb") 

    strSQL = "Select * from tbluppgifter where client = " & SQLText(Request.Form("client")) & " and password = " & SQLText(Request.Form("password")) 

    Set RecSet = Server.CreateObject("ADODB.Recordset")
    RecSet.Open strSQL, Con

    If not recset.eof and not recset.bof then
        Session("authentication") = "yes" 
    end if

%>
Medlem sedan dec. 200012 464 inlägg
#5

På din login-sida får du lägga till

session("id") = rs("id")

Jag förmodar att du hämtar id från en databas vid inloggningen. Sen när du vill använda id så refererar du bara till session("id")

Medlem sedan mars 20023 686 inlägg
#6

LarsG skrev:

På din login-sida får du lägga till

session("id") = rs("id")

Jag förmodar att du hämtar id från en databas vid inloggningen. Sen när du vill använda id så refererar du bara till session("id")

:r , skulle du vilja sätta in det i kodexemplet? Vet inte riktigt hut/vad som ska ändras och läggas till och exakt hur.

Medlem sedan dec. 200012 464 inlägg
#7
If not recset.eof then
        Session("authentication") = "yes" 
        Session("id") = recset("id")
end if
Medlem sedan mars 20023 686 inlägg
#8

LarsG:

tackar, men hur gör jag för att man inte skan kunna komma åt andras profiler på sidan visitkort.asp

Medlem sedan nov. 20017 144 inlägg
#9

På samma sätt.
//red.

Medlem sedan mars 20023 686 inlägg
#10

Jesper T:

. :)
Nu går du lite för fort fram. Detta är koden som jag använder när man ska in på visitkort.asp

<%IF NOT Session("Authentication") = "yes" THEN
Response.Redirect "index.asp"
ELSE
%>
<%END IF%>

Medlem sedan dec. 200012 464 inlägg
#11

När du lägger ut din länk så använder du bara

<a href='visitkort.asp'> Ändra visitkort</a>

Och sedan på sidan visitkort.asp så använder du

id = session("id")

i stället för

id = request.querystring("id")
Medlem sedan mars 20023 686 inlägg
#12

LarsG:

Tackar, det funkar nu! Du hade en bra och tydlig förklaring.

273 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)