Avatar ·

Comment nettoyer correctement les entrées utilisateur en PHP contre les XSS et les injections SQL ?

Bonjour à tous ! Je suis un développeur PHP débutant, j'écris mon premier site — un simple livre d'or. Les utilisateurs laissent un nom et un message que je sauvegarde dans MySQL et que j'affiche ensuite sur la page. Actuellement, mon code ressemble à ceci : ```php // Sauvegarde en BDD $name = $_POST['name']; $message = $_POST['message']; $sql = "INSERT INTO comments (name, message) VALUES ('$name', '$message')"; mysqli_query($conn, $sql); // Affichage sur la page echo "

$name: $message

"; ``` J'ai remarqué que si je saisis dans le champ nom quelque chose comme ``, une fenêtre contextuelle apparaît lors de l'affichage du message. Et si je saisis `' OR '1'='1`, la requête semble se casser. J'ai lu qu'il faut "nettoyer" (sanitize) les entrées, mais je ne comprends pas comment le faire correctement. Sur Internet, il y a des tonnes de conseils — certains disent d'utiliser `htmlspecialchars()`, d'autres `strip_tags()`, d'autres encore `mysqli_real_escape_string()`. Mais qu'est-ce qui est vraiment nécessaire ? Ou faut-il tout utiliser ensemble ? S'il vous plaît, aidez-moi.