Como limpar corretamente a entrada do usuário em PHP contra XSS e injeções SQL?
Olá a todos! Sou um desenvolvedor PHP iniciante e estou escrevendo meu primeiro site — um simples livro de visitas. Os usuários deixam nome e mensagem, que eu salvo no MySQL e depois exibo na página.
Atualmente, meu código é mais ou menos assim:
```php
// Salvando no banco de dados
$name = $_POST['name'];
$message = $_POST['message'];
$sql = "INSERT INTO comments (name, message) VALUES ('$name', '$message')";
mysqli_query($conn, $sql);
// Exibindo na página
echo "
$name: $message
"; ``` Percebi que se eu inserir no campo nome algo como ``, ao exibir a mensagem aparece uma janela pop-up. E se eu inserir `' OR '1'='1`, a query parece quebrar. Li que é preciso "sanitizar" (sanitize) a entrada, mas não entendo como fazer isso corretamente. Na internet há montes de conselhos — uns dizem para usar `htmlspecialchars()`, outros `strip_tags()`, outros `mysqli_real_escape_string()`. Mas o que realmente é necessário? Ou preciso usar tudo junto? Por favor, me ajudem.