ciao a tutti![]()
se sul mio server il "magic_quotes" è impostato su "off", è sufficiente trattare le variabili con "mysql_real_escape_string" per evitare SQL injection in fase di update su mysql?
![]()
ciao a tutti![]()
se sul mio server il "magic_quotes" è impostato su "off", è sufficiente trattare le variabili con "mysql_real_escape_string" per evitare SQL injection in fase di update su mysql?
![]()
in linea di massima sì, fermo restando che la "logica" di implementazione delle query deve comunque essere ponderata... se insomma le query vengono formate in maniera scorretta è chiaro che si potrebbe comunque andare incontro a problemi, ma per quanto riguarda la vera e propria "SQL injection" puoi stare abbastanza tranquillo se presti attenzione in particolare agli apici.
puoi anche filtrare i dati che ricevi in input usando la funzione addslashes() a patto che poi quando estrai i dati usi la funzione opposta stripslashes()
oppure puoi filtrare i dati con htmlentities() inserendo il parametro ENT_QUOTES così da trasformare sie gli apici singoli che quelli doppi nei relativi caratteri speciali
uh? eh ? cosa?
Purtroppo sul mio server "magic_quotes" è impostato su "on"....
ho chiesto al provider di cambiare l'impostazione.... altrimenti come posso fare?![]()
in che senso "purtroppo"? in questo caso i dati inviati via FORM sono automaticamente "escapati"... se ti vanno bene usali così, altrimenti usa stripslashes e poi gestili autonomamente (in realtà sarebbe giusto verificare l'impostazione del settaggio e in base al suo valore decidere cosa fare, così se il provider dovesse modificare "inaspettatamente" la configurazione non avresti problemi)
Originariamente inviato da eiyen
in che senso "purtroppo"? in questo caso i dati inviati via FORM sono automaticamente "escapati"... se ti vanno bene usali così, altrimenti usa stripslashes e poi gestili autonomamente (in realtà sarebbe giusto verificare l'impostazione del settaggio e in base al suo valore decidere cosa fare, così se il provider dovesse modificare "inaspettatamente" la configurazione non avresti problemi)
sulla pagina di php.net trovo:
Note: If magic_quotes_gpc is enabled, first apply stripslashes() to the data. Using this function on data which has already been escaped will escape the data twice.
Note: If this function is not used to escape data, the query is vulnerable to SQL Injection Attacks.
Vuol quindi dire che se "magic_quotes_gpc" è attivato, il solo uso di "mysql_real_escape_string" non garantisce contro le injection...![]()
No, ti spiego...
questo vuol dire che se il flag è attivo devi usare - come ti dicevo - la funzione stripslashes() per recuperare i dati in formato "normale", senza i codici di escape (se ti occorre)Originariamente inviato da henry78
Note: If magic_quotes_gpc is enabled, first apply stripslashes() to the data. Using this function on data which has already been escaped will escape the data twice.
Questo significa invece che se il flag non è attivo sei esposto a SQL Injection SE NON INTERVIENI IN QUALCHE MODO (per esempio con mysql_real_escape_string())Originariamente inviato da henry78
Note: If this function is not used to escape data, the query is vulnerable to SQL Injection Attacks.
Originariamente inviato da eiyen
No, ti spiego...
questo vuol dire che se il flag è attivo devi usare - come ti dicevo - la funzione stripslashes() per recuperare i dati in formato "normale", senza i codici di escape (se ti occorre)
Questo significa invece che se il flag non è attivo sei esposto a SQL Injection SE NON INTERVIENI IN QUALCHE MODO (per esempio con mysql_real_escape_string())
grazie 1000 per la spiegazione![]()
prego (per la mia parte)!