Eu diria que é muito geral. Ele pode ser seguro para muitos usos, mas muitas vezes daria efeitos colaterais indesejados às cordas. Nem toda string deve ser escapada assim.
mysql_real_escape_string()
deve ser usado apenas em consultas SQL. Melhor ainda, vincule parâmetros com PDO.- Por que você desejaria cobrir tags e codificar entidades antes de inserir em um banco de dados? Talvez faça isso na saída.
- Para prevenção de XSS,
htmlspecialchars()
é mais seu amigo. Dê a ele o conjunto de caracteres como um argumento.
Então eu usaria
mysql_real_escape_string()
para consultas e htmlspecialchars()
para ecoar strings enviadas pelo usuário. Também há muito mais para saber. Faça algumas leitura adicional
.