Christian R. Larsen skrev:
> Jeg har et site, hvor jeg gerne vil reducere risikoen for SQL
> injects og site cross scripting.
God ide.
> forside.asp kan kaldes med argumentet 'artikel', dvs.:
>
www.mitsite.dk/forside.asp?artikel=199
Jeg går ud fra at 199 svarer til et id-felt i din database.
I så fald er problemet ikke så stort. Du skal bare tjekke at det
argument du modtager er et gyldigt tal.
> Dim iArtikel
> iArtikel = Request("Artikel")
If isNumeric(iArtikel) Then
' Alt o.k.
Else
' Vis en standardside, eller en fejlmeddelelse
End If
Det er lidt mere besværligt hvis du skal have overført en
tekstværdi. Her skal man sørge for at escape anførselstegn så der
ikke opstår "rod" i sql-sætningen. I Access og MSSQL gøres det ved
at dublere indlejrede anførselstegnene - erstat ' (enkelt
apostrof) med '' (to gange apostrof), så opfattes det af databasen
som det ønskede ene apostroftegn. Jeg ved ikke om det virker på
samme måde i MySQL, men jeg kunne godt forestille mig at man
escaper med \ i stedet for et ekstra '-tegn - altså 'Mc\'Donald' i
stedet for 'Mc''Donald'. Prøv det evt. direkte i MySQL.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html