06. februar 2007 - 20:08Der er
12 kommentarer og 2 løsninger
Sende id via session i en løkke
Hej eksperter
Jeg ved ved at opbygge et administratorområde, hvor en bruger kan logge ind og ellers rette i sine egne sider. Antallet af sider for den enkelte bruger vises via en løkke, altså tager alle rækker i en tabel, som passer på brugernavnet. Når den enkelte side skal rettes, er det jo ganske enkelt at gå videre til en "retteside" ved at medsende id ....?Id=xx. Det er jo bare ikke en god ide, da en bruger så bare kan rette id-nr. i browseren og komme ind på en anden brugers side.
Hvis jeg indsætter en session i en løkke, medsender den altid første record. Hvordan koder jeg det, så id-nr. kommer med til "rettesiden", men det skal jo ikke være sådan, at brugeren ser id-nr.?
Hmm.. du kunnde jo, en hurtig løsning, gøre sådan, at når man går ind på en side.. id=73 .. så tjekker den igen, og det er brugerens egen side. Ellers redirecte til en default "det kan du glemme" side.
mettecarsten >> Så kører du jo med ypper dårlig sikkerhed, hvis man kan gå tilbage og skrive et andet ID i sin adresselinie. I databasen skal brugerne jo have et brugerID og så skal den tjekke på siden hvor man redigere sin side om brugerID = Session("brugerID") fx.
madeindk - jeg har gjort det sådan tidligere, og det er helt korrekt helt vild dårlig sikkerhed - det er også derfor, at jeg nu skal have det ændret. Du har vel ikke noget yderlige omkring dette sikkerhedsproblem?
Når man kommer ind på ex. retSide.asp?id=75 .. så tjekker den, som det første, om side 75 har det brugernavn som er i din session. :) Hvis ikke, så redirecter den. Er det til at forstå? :)
Det er til at forstå. Så er der vel heller intet problem i at skrive ID'et, det behøver du da bestemt ikke holde hemmeligt for brugeren, hvis du har sikkerhedstjek på :-9
Det lyder meget rigtigt, men jeg kan bare ikke få det til at virke. Jeg har prøvet med følgende koder:
<% If rs("Bruger") <> Session("Bruger") Then Response.Redirect("login.asp") End If %>
eller
<% If rs("Bruger") = Session("Bruger") Then ' Bare et eksempel %>
og <% End If %> til sidst i dokumentet.
I første eksempel går den uanset hvad til login.asp og blank side i andet eksempel. Har tjekket igen og igen, at if sætningen også er rigtig, svarer til 1 = 1.
<% If Cint(rs("Bruger")) = Cint(Session("Bruger")) Then ' Bare et eksempel Response.Write "Din session er OK" Else Response.Write "Din session er ikke OK - kan du så komme ud!" End If %>
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.