Prima cosa : Nella query fai una select di tutti i campi di una tabella e il resto del tuo codice ne tiene conto. Quindi non otterai mai quello che vuoi.
Seconda cosa : mysqli_query accetta una sola query. Quindi non puoi aggiungerne una seconda usando il separatore ;
Se mi arrangio per fare eseguire la query seguente con mysqli_query ottengo un errore di sintassi. Mentre funziona benissimo con phpMyAdmin cioè mi distrugge la tabella pippo.
La SQL injection nel tuo caso potrebbe limitarsi a selezionare più record del previsto. Diventa pericolosa nel caso in cui si tratta di loggarsi ad un pannello di amministrazione per esempio.codice:SELECT * FROM libri WHERE nomi LIKE '%' or 1=1;drop table pippo;select 1 from dual where 1=1 or 1='%'
Immaginiamo che tu abbia la query seguente (come ne vedo molte nei post degli utenti del forum) :
Basterebbe settare user e password a A' or 'A'='A per avere un esito positivo della query. Ovviamente se si controlla il numero delle righe tornate dalla query si puo' intravedere il problema perche ce ne saranno più di una. Ma chi pensa a questo ?codice:select * from tabella_user where user = $_POST['user'] and password = $_POST['password']


Rispondi quotando