SQL-injektionsangreb sker, når brugerinput er forkert kodet. Typisk er brugerinputtet nogle data, som brugeren sender med sin forespørgsel, dvs. værdier i $_GET
, $_POST
, $_COOKIE
, $_REQUEST
, eller $_SERVER
arrays. Brugerinput kan dog også komme fra en række andre kilder, såsom stikkontakter, eksterne websteder, filer osv.. Derfor bør du virkelig behandle alt undtagen konstanter (som 'foobar'
) som brugerinput .
I den kode, du sendte, mysql_real_escape_string
bruges til at kode (=escape) brugerinput. Koden er derfor korrekt, dvs. tillader ikke nogen SQL-injektionsangreb.
Bemærk, at det er meget nemt at glemme opkaldet til mysql_real_escape_string
- og én gang er nok for en dygtig angriber! Derfor vil du måske bruge den moderne PDO
med forberedte erklæringer
i stedet for adodb.