Aprenda a sanitizar e limpar dados do usuário no PHP

Veja como limpar e validar dados recebidos de usuários em PHP para evitar vulnerabilidades como XSS e SQL Injection.

Como limpar dados do usuário no PHP?

Ao receber dados de formulários ou requisições externas, é essencial limpar e validar as informações antes de processá-las. Isso evita falhas de segurança, como injeção SQL e ataques XSS.

Removendo espaços extras com trim()

A função trim() remove espaços em branco no início e no final de uma string:

<?php
$nome = "  João Silva   ";
$nome_limpo = trim($nome);
echo $nome_limpo;
?>

Saída:

João Silva

Isso é útil para evitar problemas ao comparar ou armazenar dados.

Convertendo caracteres especiais com htmlspecialchars()

Para proteger contra ataques XSS, devemos converter caracteres especiais:

<?php
$comentario = "<script>alert('Hackeado!');</script>";
echo htmlspecialchars($comentario, ENT_QUOTES, "UTF-8");
?>

Saída segura:

&lt;script&gt;alert('Hackeado!');&lt;/script&gt;

Aqui, a entrada maliciosa é transformada em texto inofensivo.

Validando e-mails com filter_var()

Para verificar se um e-mail é válido:

<?php
$email = "email@exemplo.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "E-mail válido";
} else {
    echo "E-mail inválido";
}
?>

Essa validação impede que e-mails falsos sejam processados.

Removendo caracteres perigosos com preg_replace()

Podemos limpar entradas de usuários removendo caracteres indesejados:

<?php
$usuario = "Carlos@!123";
$usuario_limpo = preg_replace("/[^a-zA-Z0-9]/", "", $usuario);
echo $usuario_limpo;
?>

Isso permite apenas letras e números, evitando caracteres maliciosos.

A sanitização de dados no PHP é essencial para qualquer aplicação que receba entradas de usuários. Sem um processo adequado de limpeza e validação, dados maliciosos podem comprometer o sistema, explorando vulnerabilidades como XSS e SQL Injection. Utilizar funções nativas como htmlspecialchars(), filter_var() e trim() garante que os dados sejam processados de maneira segura.

Algumas aplicações:

  • Prevenção contra ataques XSS em formulários
  • Filtragem de entradas para bancos de dados
  • Sanitização de inputs antes de serem armazenados
  • Melhoria na integridade e confiabilidade dos dados

Dicas para quem está começando

  • Use trim() para remover espaços extras antes de validar os dados.
  • Sempre escape HTML com htmlspecialchars() para evitar XSS.
  • Utilize filter_var() para validar e-mails e URLs.
  • Evite caracteres indesejados usando preg_replace().
  • Não confie apenas na validação do frontend, sempre verifique os dados no backend.

Contribuições de Daniel Moreira

Compartilhe este tutorial: Como limpar dados do usuário no PHP?

Compartilhe este tutorial

Continue aprendendo:

Como evitar ataques de injeção SQL em PHP?

Veja como proteger suas aplicações PHP contra injeções SQL utilizando técnicas seguras de manipulação de banco de dados.

Tutorial anterior

Como lidar com uploads de arquivos no PHP?

Veja como permitir que usuários façam upload de arquivos em PHP com validações de segurança para evitar ataques.

Próximo tutorial