29. november 2004 - 15:53Der er
15 kommentarer og 1 løsning
SQL i Url'en
Hi Eksperter
Jeg har lavet en e-Shop, hvor jeg benytter mig af parametre fra Url'en direkte i mine SQL forespørelser. Hvordan hindrer jeg muligheden for, at brugeren selv kan skrive en Query direkte i url'en, og dermed for adgang til min database. I værste fald er det jo muligt at slette hele min database.
Er først lige blevet klar over denne problemstilling, hvilket er lidt ærgeligt, eftersom jeg faktisk er færdig med shoppen. Jeg vil jo derfor helst undgå de store operationer.
Min string ser således ud: default.asp?sql=select from tabel where
du kan jo eventuelt lave en test på din sql, og så blot chekke for om det er tilladt det brugeren gør..
Fx.
<% sqlarr = split(lcase(request.querystring("sql"))," ") if sqlarr(0) <> "select" then response.write "fy... du må kun bruge select" elseif sqlarr(2) <> "din tabel" then response.write "fy... du må kun bruge min tabel" else response.write "Du er en guttermand og din sql er i orden.." end if %>
Tror jeg vil benytte denne løsning i dette tilfælde, da det umiddelbart virker som det mest overskuelige, men vil fremover undlade bruge Url'en, som I foreslår.
ranglen>>Det kan ikke forhindres hverken med POST eller SESSIONS, men det gör det svärere. Spörgsmålet gik ikke ud på om det kunne forhindres, men hvordan man fjernede teksten fra adressefeltet. Du må forresten lige fortälle mig hvor jeg har skrevet at det kan forhindres?
ja, man bør ikke generere queryer client side, da det er et sikkerhedsbrist...
Men man kan som jeg beskrev så lave nogle forskellige metoder til at sikre at der ikke bliver benyttet queries der kan manipulere i databasen..
Man kan så hvis man gerne vil lave det i queien kryptere strengen før den bliver sendt afsted som en querystring og så dekryptere når man kommer hen på næste side...
Der er faktisk mange måder det kan gøres på, man kan blot også sende en kode afsted der indikere hvilken sql man skal benytte på den næste side... og så have alle sql'er i en fil, som så egentlig blot inkluderes på en side..
Men det sikreste er selvfølgelig at holde det hele serverside, selvom det kan være meget omstændigt efter hvad man arbejder med...!
Synes godt om
Ny brugerNybegynder
Din løsning...
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.