Avatar billede trold Nybegynder
28. november 2006 - 11:06 Der er 3 kommentarer

ASP - Beskyt mod SQL Injektion - ADO Parameterized

Hvordan omskriver jeg nedenstående til ADO Parameterized, for at forhindre SQl Injection

strPartnername = Request.Form("txtUserID")
strPassword = Request.Form("txtPassword")

set Conn = Server.CreateObject("ADODB.connection")
Conn.Open lstrDBFile

Set rs = Server.CreateObject("ADODB.RecordSet")

strSQL = "Select * FROM MyTable WHERE (Partnername = '" & strPartnername & "') AND (Password = '" & strPassword & "')" 
rs.Open strSQL, Conn, 1, 3
Avatar billede keysersoze Guru
28. november 2006 - 11:08 #1
strPartnername = Replace(Request.Form("txtUserID"),"'","''")
strPassword = Replace(Request.Form("txtPassword"),"'","''")
Avatar billede trold Nybegynder
28. november 2006 - 11:22 #2
Det jeg leder efter er noget ala følgende (ADO parameterized SQL where parameters are replaced with static placeholders)

Det eneste jeg har kunnet finde er noget Dreamweavver koder fra Adobe - det kunne jeg ikke få til at spille
Recordset1_cmd = Server.CreateObject ("ADODB.Command");
Recordset1_cmd.ActiveConnection = MM_connMusic_STRING;
Recordset1_cmd.CommandText = "SELECT * FROM albums WHERE ID = ?";
Recordset1_cmd.Prepared = true;
Recordset1_cmd.Parameters.Append(Recordset1_cmd.CreateParameter("param1", 5, 1, -1, Recordset1__MMColParam)); // adDouble
var Recordset1 = Recordset1_cmd.Execute();


Replace ' med '' er den 100% sikker
Avatar billede softspot Forsker
28. november 2006 - 11:27 #3
Jeg ville da under alle omstændigheder (rundt regnet) altid vælge Command-objektet over en sammensat SQL-streng, så det kode du selv viser bør du fortsætte med at benytte.

Det skal efter min mening være nogle helt simple SQL-sætninger (uden parametre), for at en streng-version og connection.Execute kan retfærdiggøres (min personlige holdning til emnet i det mindste :)).
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
Kategori
Kurser inden for grundlæggende programmering

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