convertida em 'a&ccedil;&aacute;o' , permitindo melhor interpretacao do navegador.Obs: Para que a conversao de caracteres acentuados ocorra corretamente, use essa funcao combinada com utf8_decode().Exemplo de uso:$comentario = htmlentities(utf8_decode($_POST['comentario']));Dessa forma, o comentario enviado tem seus caracteres especiais convertidos como nos exemplos acima.strip_tags()Problema resolvido! Ainda nao. Se o conteudo do comentario for um codigo javascript como esse:'<script>alert('eu sou o XSS!');</script>'. Por se tratar de codigo javascript, pode ser executado pelo navegador do cliente na hora em que for exibido no site. O ideal seria remover todas as tags html do conteudo, certo? Entao vamos utilizar a funcao strip_tags(). Ele remove todas as tags html do codigo (removendo assim a tag script), impedindo a execucao de codigos como esse. Alem disso, remove a formatacao feita pelo usuario, que geralmente causa problemas de layout (usuario altera o tamanho da letra usando a tag font, por exemplo).Vamos entao melhorar nosso codigo:$comentario = htmlentities(utf8_decode(strip_tags($_POST['comentario'])));O ideal e executar a funcao strip_tags() antes de htmlentities(), para que ele seja usado apenas para tratar os acentos.addslashes():Essa talvez seja uma das funcoes mais importantes a ser comentada aqui. Ela coloca uma barra '\' antes dos caracteres especiais, como aspas, apostrofos, cifroes, etc. Em geral, ataques de injecao de SQL (quando o usuario mal intencionado tenta enviar comandos sql pelo seu formulario para obter informacoes) sao feitos utilizando-se de aspas ou apostrofos, para manipular o codigo sql definido no script. Ao filtrar os dados com essa funcao, as aspas e apostrofos nao serao tratadas como delimitadoras da string, mas como parte dela, evitando assim esse tipo de ataque.Nosso codigo agora esta assim:$comentario = addslashes(htmlentities(utf8_decode($_POST['comentario'])));trim():Por ultimo e nao menos importante, a funcao trim remove espacos em branco do inicio e do fim da string. Eu sei, isso nao ajuda em nada na seguranca do site, mas previne erros na hora da gravacao. Espacos em branco sao considerados parte da string. E se por acaso voce tiver um campo no banco de dados que aceita apenas 30 caracteres e o usuario envia 31 (incluindo os espacos)? O resultado e um erro na hora da gravacao. Para evitar esse tipo de dor de cabeca, o melhor que temos a fazer e prevenir esse tipo de situacao.Agora, o codigo final:$comentario = addslashes(htmlentities(utf8_decode(trim($_POST['comentario']))));Extenso, nao? Mas previne muita dor de cabeca. Para facilitar sua vida, crie uma funcao que execute todas as citadas acima:function tratarStrings($string){ return addslashes(htmlentities(utf8_decode(trim($string))));}Em seguida, basta executa-la onde for necessario:$comentario = tratarStrings($_POST['comentario']);Campos de data (que geralmente estao no formato dd/mm/aaaa) podem ser tratados tranquilamente com essa funcao.Caso a informacao ser tratada seja um numero inteiro ou de dupla precisao ('quebrado'), pode-se converte-lo da seguinte forma:$id = (int) $_GET['id'];$valor = (double) $_POST['valor'];Dessa forma, os numeros enviados serao convertidos para os tipos informados entre parenteses. Se a informacao enviada for uma string, o resutado sera zero.Duvidas? Deixe nos comentarios :D