Visa ett inlägg
Oläst 2014-02-06, 12:52 #5
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Citat:
Ursprungligen postat av dAEk Visa inlägg
Det jag syftade på var prepared statements. Vad jag vet har det funnits stöd för dessa länge men få vet om det, antagligen för att det är mest hemmasnickare som fortfarande sitter med asp classic.

Koden ser väl ut ungefär såhär:

Kod:
set command = Server.CreateObject("adodb.command")
command.Prepared = true
command.commandText = "select * from table where column = ?"
command.Parameters.Add(command.CreateParameter...)

recordset.Open(command)
Tyvärr kommer jag inte ihåg den exakta syntaxen men det borde bara vara en sökning bort.

Det är parameteriserad ADO du menar, det är det sättet man ska använda i alla anrop.

Man ska dessutom aldrig lägga någon annan aktiv kod i en webbsida än anrop till förkompilerade moduler (Code-behind) i ASPX och även i gammal ASP ska man kompilera sina SQL-satser i egna klass-komponenter och sedan enbart göra själva anropet i ASP-sidan.

När man använder parameteriserad ADO så är skyddet mot SQL-injections inbyggt så man behöver inte göra något mer.

Detta är en teknik som använts i minst 10 år så det finns ingen ursäkt att köra på med den gamla stilen att skriva aktiv kod i ASP eller ASPX-sidorna.

Här är lite exempel på syntaxen: http://www.w3schools.com/ado/met_com...eparameter.asp

Senast redigerad av Conny Westh den 2014-02-06 klockan 13:00
Conny Westh är inte uppkopplad   Svara med citatSvara med citat