Minha sugestão é construir uma função para higienizar todas as suas entradas de texto e uma função para verificar todas as suas saídas que vem do banco de dados ou de qualquer outra fonte, como segue:
<?php
// filter for user input
function filterInput($content)
{
$content = trim($content);
$content = stripslashes($content);
return $content;
}
//filter for viewing data
function filterOutput($content)
{
$content = htmlentities($content, ENT_NOQUOTES);
$content = nl2br($content, false);
return $content;
}
dependendo da sua estratégia, você pode adicionar recursos extras ao filtro ou remover alguns. Mas o que você tem uma função aqui é suficiente para protegê-lo contra XSS.
EDITAR: além da função acima, esta resposta também pode ser relevante em parte da proteção do seu site.
Referência aos diferentes métodos:
- trim:http://php.net/manual/en/function. trim.php
- tiras:http://php.net/manual/en/function. stripslashes.php
- htmlentidades:http://php.net/manual/en/function. htmlentities.php
- nl2br:http://php.net/manual/en/function. nl2br.php
Também é uma boa ideia dar uma olhada nos seguintes links:
- Qual é o melhor método para limpar a entrada do usuário com PHP?
- A melhor função de limpeza/segurança
E o mais importante, é bom estar ciente dos 10 principais riscos e aprender mais sobre isso.