Salve ho letto un bel po' di articoli, in giro ed anche le guide di HTML.it, ma vorrei sapere secondo voi quale è la migliore tecnica per evitare l'injection.
Grazie.
Salve ho letto un bel po' di articoli, in giro ed anche le guide di HTML.it, ma vorrei sapere secondo voi quale è la migliore tecnica per evitare l'injection.
Grazie.
Beati gli smemorati, perchè avranno la meglio anche sui loro errori...
My gallery: http://donovant.deviantart.com/gallery/
Usare i pdostatment, e abbandonare mysql, è la miglior soluzione sia per la sicurezza che per la compatibilità e la velocità
Scusa ma PDO mica esula da MySql?
Ma perchè sarebbe più sicuro? Usando PDO non ci si deve cmq preoccupare del MySql injection?
Beati gli smemorati, perchè avranno la meglio anche sui loro errori...
My gallery: http://donovant.deviantart.com/gallery/
No serve per gestirlo meglio semmai,per quanto riguarda l'sql injectionOriginariamente inviato da Donovant
Scusa ma PDO mica esula da MySql?
Ma perchè sarebbe più sicuro? Usando PDO non ci si deve cmq preoccupare del MySql injection?
se si utilizzano gli appositi metodi statment gestendo correttamente la valorizzazione
(es. prepare+execute con array di valori da legare o bindParam) non è più un problema tuttavià una query vulnerabile con pdo potrebbe essere una query che viene creata da input esterni non correttamente valorizzati e legati al valore corrispondente, per questo oltre ad una buona gestione delle variabili serve anche logica e attenzione
Sto usando mysqli, che fa uso di :repare, ::bind_param, ::execute, etc.
Ora volevo testare un mysql injection, e a tal proposito mi chiedevo che questa GET fosse esatta (è solo un test, per questo uso GET)
pagina.php?username='nomeuser');delete%20from%20tb l_utenti%20where%20id_utente=1
ed anche eliminando la parentesi finale
pagina.php?username='nomeuser';delete%20from%20tbl _utenti%20where%20id_utente=1
Non avviene la cancellazione, ma forse sbaglio qualcosa, o non avviene proprio perchè uso "prepare" e "bind_param" ???Codice PHP:
$stmt = $db->getQueryPrepare("SELECT id_utente FROM tbl_utenti WHERE username = ? ");
$stmt->bind_param("s", $user_name);
$user_name = $_GET["username"];
$stmt->execute();
grazie.
Beati gli smemorati, perchè avranno la meglio anche sui loro errori...
My gallery: http://donovant.deviantart.com/gallery/