Christian M. Nielsen wrote :
> Hvordan laver man sin database hvis der er tilsluttet flere brugere og
> de ikke må have lov til at se andres data?
>
> Jeg har pt. en tabel med deres info samt BrugerID og PWD.
>
> Hvis jeg logger ind og efterfølgende ændrer i url'en kan jeg se de
> info der er indtastet om andre brugere.
>
> udsnit af url visinfo.asp?brugerid=1&action=show Hvis jeg ændrer
> brugerid til 2 ser jeg de info der er om den gældende person
Det er måske lidt overkill i dit tilfælde, men du kan med anvendelse
af fx MD5-hashfunktionen lave en "fattigmands" digital signatur af de
data du videresender. Den digitale signatur bevirker, at man ikke lige
umiddelbart kan ændre i de data, der medsendes fra din applikation.
Hvis du fx medsender
visinfo.asp?brugerid=1&action=show
Så udregner du også en signatur og medsender den. Signaturen udregnes på
baggrund af her tallet 1 og strengen "show". Din URI bliver dermed
visinfo.asp?brugerid=1&action=show&checksum=ere35ervhdhvfxdgvxd
checksum udregnes på følgende måde:
checksum = MD5(<hemmelig streng> & Request.QueryString("brugerid") & Request.QueryString("action"))
Da du er den eneste, der kender denne hemmelige streng, så kan andre ikke
udregne den. Når du så skal checke dine data, så gøres det således:
strCheck = MD5(<hemmelig streng> & Request.QueryString("brugerid") & Request.QueryString("action"))
if Request.Querystring("checksum") = strCheck then
' gør noget
else
Response.Write "Du må ikke ændre i URI !"
end if
Hvis man nu er en ond bruger og ændrer URI
visinfo.asp?brugerid=1&action=show&checksum=ere35ervhdhvfxdgvxd
til
visinfo.asp?brugerid=2&action=show&checksum=ere35ervhdhvfxdgvxd
Så vil værdien ere35ervhdhvfxdgvxd ikke stemme overens med de data du
overfører, her 2-tallet og strengen "show", og du vil opdage, at der er
ændret i URI.
MD5-funktionen er (næsten) lineær i udførsel, så det bør ikke medføre
store ændringer i performance af din applikation at udregne disse ting.
Jeg har lavet dette konsekvent på sitet
http://usedbooks.dk, hvor der
overføres data i URI, og jeg må indrømme, at jeg selv var overrasket
over, hvor godt det virker. Ting som input-validering bliver også
nemmere - ja, nærmest ikke-eksisterende.
http://usedbooks.dk/books/?id=1039019431&checksum=08794813d5cca2700b5290649bfa7ba1
--
Jesper Stocholm -
http://stocholm.dk
FAQ for dk.edb.internet.webdesign.serverside.asp :
http://asp-faq.dk
Svar til gruppen og ikke til mig privat !
Skriv under det du svarer på -
www.usenet.dk/netikette/citatteknik.html