SQL-injektionsattacker inträffar när användarinmatning är felaktigt kodad. Vanligtvis är användarinmatningen vissa data som användaren skickar med sin fråga, dvs värden i $_GET
, $_POST
, $_COOKIE
, $_REQUEST
, eller $_SERVER
matriser. Användarinmatning kan dock också komma från en mängd andra källor, som uttag, fjärrwebbplatser, filer etc.. Därför bör du verkligen behandla allt utom konstanter (som 'foobar'
) som användarinmatning .
I koden du postade, mysql_real_escape_string
används för att koda (=escape) användarinmatningar. Koden är därför korrekt, d.v.s. tillåter inga SQL-injektionsattacker.
Observera att det är väldigt lätt att glömma samtalet till mysql_real_escape_string
– och en gång räcker för en skicklig anfallare! Därför kanske du vill använda den moderna PDO
med förberedda uttalanden
istället för adodb.