Suis-je dans le vrai ou est-ce que j'oublie quelque chose?
Non, tu as totalement raison. Gros caractères arrivant pour les lecteurs occasionnels qui pourraient d'une manière ou d'une autre ne pas saisir le sens de ta question.
Différents types de sortie requièrent différents types de protection.
Supprimez les choses qui pourraient être du HTML, et vous serez plus en sécurité contre les XSS. Citez et échappez correctement votre entrée de base de données, et vous serez plus en sécurité contre les injections SQL. Soyez attentif aux entrées inattendues partout et vous augmenterez la sécurité de votre code.
C'est merveilleux que tu te rendes maintenant pleinement compte de cela. Trop de gens ne le font pas.
Je viens de découvrir les filtres de nettoyage et de validation de PHP
Ils sont sympas, n'est-ce pas ? Ils font partie intégrante de PHP moderne. Utilise-les religieusement et ils ne te décevront pas. Sauf pour celui sur les adresses e-mail, il échoue dans un grand nombre de cas marginaux ; je préfère is_email.
J'utilisais mysql_escape_string de MySQL pour éviter les injections SQL.
Ce n'est pas une bonne pratique de PHP moderne. J'espère également que tu utilises la fonction d'échappement de chaîne avec le mot "real" dedans, sinon tu pourrais être en difficulté.
Je pense que tu es prêt pour la prochaine étape : Apprends PDO. Elle possède des déclarations préparées et des espaces réservés pour les requêtes, qui te fourniront une protection complète et gratuite contre les injections SQL, si tu l'utilises correctement. PDO est disponible partout où des versions récentes de PHP sont disponibles. C'est intégré. Utilise-le, apprends-le, aime-le. Sinon, tu es condamné. Condamané !