| Consultas parametrizadas | Todo acesso ao banco usa prepared statements | Fecha a porta de injeção de SQL |
| Senhas com hash | password_hash() com algoritmo atual, nunca texto puro | Vazamento do banco não entrega as senhas |
| Saída escapada | Todo dado de usuário é escapado antes de virar HTML | Impede execução de script injetado |
| Token anti-CSRF | Todo formulário que altera dado carrega token de sessão | Evita ação disparada por site de terceiro |
| Upload validado | Tipo, tamanho e nome tratados; pasta sem execução de PHP | Impede envio de arquivo malicioso |
| Permissões 644/755 | Arquivos 644, pastas 755, config fora da raiz pública | Padrão para hospedagem compartilhada |
| Log de erro fechado | Erro registrado em arquivo protegido, nunca exibido na tela | Mensagem de erro entrega estrutura do sistema |
| Backup antes de publicar | Cópia do estado anterior guardada e testada | Permite voltar atrás em minutos |