Avatar ·

Como limpar corretamente a entrada do usuário em PHP: proteção contra XSS e SQL injection

Olá a todos! Sou um desenvolvedor PHP iniciante e me deparei com um problema de segurança. No meu site, há um formulário de registro e comentários. Eu recebo dados dos usuários e os insiro diretamente no banco de dados e os exibo na página. Recentemente, notei que alguém inseriu o seguinte código no campo de nome: ``, e ao exibir na página, esse script foi executado. Também ouvi falar sobre SQL injection, mas não entendo completamente como me proteger contra eles. Aqui está um exemplo do meu código: ```php // Obtendo dados do formulário $name = $_POST['name']; $email = $_POST['email']; // Salvando no banco de dados (MySQL) $query = "INSERT INTO users (name, email) VALUES ('$name', '$email')"; mysqli_query($connection, $query); // Exibindo na página echo "Olá, $name!"; ``` Como limpar os dados corretamente? Devo usar `htmlspecialchars()` ou `strip_tags()`? E para o banco de dados — `mysqli_real_escape_string()`? Ou existem abordagens mais modernas? Por favor, indiquem as melhores práticas para PHP 8+. Tags: php