Avatar billede caroc Praktikant
18. februar 2008 - 14:10 Der er 4 kommentarer

Usikker databaseforbindelse

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å.

Her er min forbindelse til databasen:

<%
SET rs = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../database/katalog.mdb")

If Request("mode") = "Check" then

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

%>


Håber i kan hjælpe.
Warner
Avatar billede fennec Nybegynder
18. februar 2008 - 15:13 #1
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"),"'","''") & "')
Avatar billede caroc Praktikant
18. februar 2008 - 15:37 #2
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??
Avatar billede fennec Nybegynder
18. februar 2008 - 15:46 #3
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"),"'","''") & "')"
Avatar billede caroc Praktikant
18. februar 2008 - 15:59 #4
det fungerer helt perfekt nu - jeg siger mange mange tak!! Hvis du lige gider lægge et svar så var det vist det :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester