Ho un'applicazione che prende i dati tramite una richiesta POST. Sto usando questi dati per inserire una nuova riga nel database. So che usare mysql_real_escape_string()
(oltre a rimuovere% e _) è la strada da percorrere per le stringhe, ma per quanto riguarda i valori interi? In questo momento, sto usando la funzione PHP intval()
su di loro.Sanificazione intero di ingresso Database
Tuttavia, volevo essere sicuro che intval()
sia perfettamente sicuro. Non riesco a vedere un modo di un attaccante preformatura un attacco di SQL injection quando le variabili sono gestiti attraverso intval()
prima (dal momento che restituisce sempre un numero intero), ma ho voluto assicurarsi che questo è il caso da parte di persone che hanno più esperienza di me .
Grazie.
Avviso: se si hanno a che fare con numeri maggiori di 32 o 64 bit (a seconda della piattaforma) 'intval()' restituirà zero. Questo è ovviamente indesiderato se stai tentando di memorizzare numeri molto grandi nel tuo database. Ad esempio, gli ID di Facebook non si adattano a 32 bit per anni http://developers.facebook.com/blog/post/45 –
@Frank Farmer: Hm .. è interessante. Grazie per il testa a testa. Vedrò cosa possiamo fare per risolvere il problema, se necessario. –