Gli attacchi SQL injection si verificano quando input dell'utente è codificato in modo errato. In genere, l'input dell'utente è costituito da alcuni dati che l'utente invia con la sua query, ovvero valori nel $_GET
, $_POST
, $_COOKIE
, $_REQUEST
o $_SERVER
matrici. Tuttavia, l'input dell'utente può provenire anche da una varietà di altre fonti, come socket, siti Web remoti, file, ecc. Pertanto, dovresti davvero trattare tutto tranne le costanti (come 'foobar'
) come input dell'utente .
Nel codice che hai pubblicato, mysql_real_escape_string
viene utilizzato per codificare (=escape) gli input dell'utente. Il codice è quindi corretto, ovvero non consente attacchi SQL injection.
Nota che è molto facile dimenticare la chiamata a mysql_real_escape_string
- e una volta è sufficiente per un abile attaccante! Pertanto, potresti voler utilizzare il moderno PDO
con dichiarazioni preparate
invece di addb.