Quote Originariamente inviata da nik600 Visualizza il messaggio
ciao

- l'incremento del valore di sessione non ha alcuna utilità: era solo un esempio per farti capire come funzionava
- il sanitize dell'input significa "bonificare" i parametri che ti vengono passati dagli utenti, nel tuo codice iniziale se io mettessi nel campo user 1' or '1'='1 avrei accesso anche senza sapere la password perchè tu vai a concatenare l'input dell'utente alla stringa SQL e questo può comportare la creazione di un sql di questo tipo:

select * from account where user='pippo' and password='1' or '1'='1'

che restituirà tutti i record nella tabella.

La cosa ha potenzialmente delle implicazioni molto più pericolose, come ad esempio:

select * from account where user='pippo' and password='1' or id_account in (drop table xxx) or '1'='1'


etc etc etc....

Nell'esempio di zacca94 ti viene mostrato come usare una funzione che tramite mysql_real_escape_string effettua la "bonifica" di quanto scritto dall'utente, convertendo una stringa come 1'1 in 1\'1.

In genere io comunque ti consiglio di usare delle librerie di astrazione (come PDO,MDB2 o altre) ed effettuare il bind dei parametri.


Ciao
Perfetto , grazie per avermi chiarito le idee.
Quindi per bonificare i parametri dell' utenti con mysql_real_escape_string viene effettuato in automatico?
Ipotizzando un utente malintenzionato non potrebbe bypassare il comando?