Bonjour,
J’aurais quelques questions concernant la sécurité de mon site.
Désolé d’avance si le message est un peu long, j'espère que ça ne vous découragera pas de m’aider.
J’ai pris l’habitude de mettre mysql_real_escape_string sur toutes les données entrantes dans ma base de donnée.
Prenons exemple d’une table contenu toute simple avec 3 champs : ID|TITRE|TEXTE
Pour mon champ TEXTE j’utilise un WYSIWYG (TinyMce), j’ai remarqué que tous les accents, les guillemets étaient convertis en entités html :
Exemple : l’étau devient dans ma base de donnée : L’ étau
Comment ça se passe si je veux maintenant créer un formulaire de recherche qui recherche à la fois sur les champs TEXTE et TITRE.
En cherchant et essayant toutes sortes de combinaisons pour que ma recherche fonctionne comme il faut sur le champ TEXTE, j'ai remarqué qu'il fallait passer ma variable comme ceci :
Exemple de ma requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part htmlentities($_POST["recherche"])
Du coup j’ai l’impression que je suis vulnérable aux injections SQL avec htmlentities($_POST["txt_recherche"])
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM contenu WHERE TITRE LIKE "%'. mysql_real_escape_string ($_POST["recherche"]).'%" OR TEXTE LIKE "%'. htmlentities($_POST["recherche"]).'%")
Je suis un peu perdu, et comme c’est un sujet relativement sensible, un peu d’aide serait la bienvenue !
D’avance un grand merci !
Partager