Omicron36
25-10-2015, 17:31
Salve a tutti,
Ho alcuni dubbi circa quale sia l'approccio più sicuro per evitare le vulnerabilità di tipo SQL. Studio da poco questi argomenti e, da ciò che ho capito, gli attacchi di tipo SQL injection sono molto pericolosi.
Vorrei avere certezze circa quale sia un buon metodo per difendersi e, nello specifico, se tale approccio sia corretto. Parto dal codice per l'inserimento dei dati in una tabella:
$sql = 'INSERT INTO tabella SET colonnatesto = :colonnatesto';
$a = $pdo->prepare($sql);
$a->bindValue(':colonnatesto', $_POST['testodainserire']);
$a->execute();
Questo codice dovrebbe permettere al server MySQL di prepararsi ad eseguire una query utilizzando un segnaposto e, solo dopo, inserire nel segnaposto il valore effettivo del contenuto da inviare. A questo punto il contenuto (se fosse codice) sarebbe "bonificato" e reso non pericoloso.
Tutto ciò è corretto? Ho capito bene?
Qualcuno di voi, per sicurezza, potrebbe spiegarmi meglio (step by step) il meccanismo di questo codice?
Grazie!
Ho alcuni dubbi circa quale sia l'approccio più sicuro per evitare le vulnerabilità di tipo SQL. Studio da poco questi argomenti e, da ciò che ho capito, gli attacchi di tipo SQL injection sono molto pericolosi.
Vorrei avere certezze circa quale sia un buon metodo per difendersi e, nello specifico, se tale approccio sia corretto. Parto dal codice per l'inserimento dei dati in una tabella:
$sql = 'INSERT INTO tabella SET colonnatesto = :colonnatesto';
$a = $pdo->prepare($sql);
$a->bindValue(':colonnatesto', $_POST['testodainserire']);
$a->execute();
Questo codice dovrebbe permettere al server MySQL di prepararsi ad eseguire una query utilizzando un segnaposto e, solo dopo, inserire nel segnaposto il valore effettivo del contenuto da inviare. A questo punto il contenuto (se fosse codice) sarebbe "bonificato" e reso non pericoloso.
Tutto ciò è corretto? Ho capito bene?
Qualcuno di voi, per sicurezza, potrebbe spiegarmi meglio (step by step) il meccanismo di questo codice?
Grazie!