PHP – Magic Quotes
Magic quotes è una funzione che, se abilitata, opera un addslashes nei dati inseriti attraverso un form html. Questo significa che ad esempio, se noi passassimo all’interno di una textarea una stringa del tipo (virgolette comprese) “l’acqua” , con le magic quotes abilitate, questa verrebbe memorizzata nel database come l’acqua .
L’addslashes non è altro che un inserimento dei caratteri slashes subito prima dei caratteri apostrofo ( ‘ ), virgolette ( ” ) e NULL.
Questo accorgimento ha un suo senso! Serve infatti a prevenire attacchi di tipo SQL Injection. Questi sono delle tecniche di cracking che si basano sull’inserimento all’interno di un form di stringhe che verranno interpretate come comandi dalle query sql, e permettono al cracker di aver accesso ai dati del database.
E’ una funzione che viene considerata deprecata dalle ultime versioni del PHP, tuttavia ha una sua utilità, specialmente per i neofiti. Gli svantaggi del suo utilizzo derivano dal fatto che spesso i dati passati non devono essere memorizzati sul database, ma ad esempio inviati a una mail o stampati tramite il comando ‘echo’ in un’altra pagina. In tal caso l’uso degli slash sarebbe decisamente controproducente.
Si può verificare se le magic quotes sono attivate o no tramite la funzione get_magic_quotes_gpc(), che restituirà 1 in caso affermativo, 0 in caso contrario.
Nel caso in cui le magic quotes siano disattivate, anzichè attivarle globalmente si può ovviare ad esse tramite la funzione addslashes($variabile_ricevuta_dal_post) prima dell’inserimento del dato nel database.

