Fondamentalement, vous devez nettoyer l'entrée utilisateur chaque fois que vous l'envoyez quelque part. Lorsque vous le placez dans votre base de données, vous devez empêcher l'injection SQL en indiquant des caractères spéciaux SQL (les instructions préparées le feront pour vous). Lorsque vous l'envoyez à un navigateur, vous devez échapper les caractères spéciaux HTML (PHP a des fonctions pour cela) pour empêcher l'injection de script.
Il peut y avoir d'autres endroits où vous devez également sortir des caractères spéciaux. Par exemple, si vous envoyez les commentaires à un script Bash sur le serveur pour effectuer un traitement. Dans ce cas, vous devez citer ou échapper des caractères spéciaux spécifiques à Bash.
Il est important de ne pas citer/échapper au mauvais stade: par exemple, n'échappez pas aux entités HTML lorsque vous les placez dans la base de données, sauf si vous êtes absolument sûr de ce que vous faites. Il est très facile d'échapper accidentellement à nouveau lorsque vous le sortez de la base de données et que vous vous préparez à l'envoyer à un navigateur ou si vous envoyez un message d'erreur en cas d'échec de la connexion à la base de données). Evadez-vous au dernier moment et vous éviterez probablement ces pièges.
J'oublie d'ajouter, j'utilise redbean, qui est construit sur PDO. – jonnnnnnnnnie