Hej... Jeg står med et mindre sikkerhedsproblem, da jeg ikke har sikret mig godtnok i koden ved min databaseforbindelse. Problemet er at det er muligt at indsætte: ' or 'x'='x i både password og brugernavn og derved logge på.
Sql = "Select Count(*) as Found from users where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set Login = Rs.Execute(Sql) if Login("Found") = 0 then Session("login") = 0 error = "Du har skrevet et forkert brugernavn eller password - prøv igen!" else Session("Login") = 1 Session("password-session") = Request("username") Response.Redirect "adminindex.asp" end if else end if
Metoden hedder SQL injections. Kik på google efter flere oplysninger.
Men løsningen er at escape ' tegnet med 2: ...where (username = '" & replace(Request("username"),"'","''") & "') and (password ='" & replace(Request("password"),"'","''") & "')
Er ikke længere så ferm i ASP så håber lidt på at få en string postet hvor SQL injections ikke længere er muligt.. Har prøvet med din og synes ikke den virkede??
Det skulle den nu ellers. Det eneste du skal gøre er at smide en replace() omkring dine request:
Request("username") Skal bliver til: replace(Request("username"),"'","''")
Den fulde sql er: Sql = "Select Count(*) as Found from users where (username = '" & replace(Request("username"),"'","''") & "') and (password ='" & replace(Request("password"),"'","''") & "')"
det fungerer helt perfekt nu - jeg siger mange mange tak!! Hvis du lige gider lægge et svar så var det vist det :)
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.