01. april 2003 - 00:51Der er
8 kommentarer og 1 løsning
Ændre sql sætning
Jeg er ved at flytte en .mdb database til min mysql.
.mdb databasen bruger følgende:
set rs = Server.CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM Tpassword where Fpassword='"& fpassword &"' AND Fuser='" & fuser & "' AND Faktiv=TRUE" , Conn, 1, 3
Og når jeg så hiver den over til mysql, laver den fejl ved Faktiv=TRUE" , Conn, 1, 3 <- altså efter TRUE"
Og jeg vil stadig væk godt have denne funktion med, nogen der kan hjælpe?
<body topmargin="0" leftmargin="0" bgcolor="#EDFBF1"> <% 'hvis forsøg 3 ikke er nået sker der ikke noget siden bliver vist (husk vi tæller 0,1,2) IF session("forsøg") >= 2 then end if
'* se om der er noget i db som passer på "password" fra side 1 ***************
SQLstmt = "SELECT * FROM tpassword where Fpassword='"& fpassword &"' AND Fuser='" & fuser & AND Faktiv=TRUE" , Conn, 1, 3 'response.write SQLstmt Set rs = my_conn.Execute(SQLstmt)
set rs = Server.CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM Tpassword where Fpassword='"& fpassword &"' AND Fuser='" & fuser & "' AND Faktiv=TRUE" , Conn, 1, 3
'* HVIS DER IKKE ER NOGLE DER KAN BUGES, giver vi dem 1 ekstra login fejl, og skriver HTTP "Fejl....." *
If rs.EOF And rs.BOF Then session("godkendt") = FALSE session("forsøg") = session("forsøg") +1 end if
Nej - man behøver ikke vide noget. Så længe siden bare kontrollerer om der ikke er eof, så kan man nøjes med at skrive ' or ''=' i brugernavn og password.
Desuden kunne man, hvis man lærer lidt om hvilken database-server det drejer sig om, indsætte kommandoer der sletter data/tabeller, tilføjer en ny bruger, eller lukker ned for databasen.
Faktisk er den hyppigste fejl at folk ikke kontrollerer om ID'er rent faktisk er et tal, men bare bruger sql="select tekst fra side where id=" & request("id") Så det står helt åbent at lægge alle mulige kommandoer ind.
Søg på fx google.com efter "sql injection", hvis du vil lære mere om det. De første hits er gode informationer.
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.