Direi che è troppo generico. può essere sicuro per molti usi, ma spesso darebbe effetti collaterali indesiderati alle corde. Non tutte le stringhe devono essere sottoposte a escape in questo modo.
mysql_real_escape_string()
deve essere utilizzato solo all'interno di query SQL. Meglio ancora, lega i parametri con PDO.- Perché vorresti eliminare i tag e codificare le entità prima di inserirle in un database? Forse fallo mentre esci.
- Per la prevenzione XSS,
htmlspecialchars()
è più tuo amico. Assegnagli il set di caratteri come argomento.
Quindi userei mysql_real_escape_string()
per le query e htmlspecialchars()
per l'eco delle stringhe inviate dall'utente. C'è anche molto altro da sapere. Fai qualche ulteriori letture
.