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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
htmlentities($_POST["recherche"])
Exemple de ma requête :
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"]).'%")
Du coup j’ai l’impression que je suis vulnérable aux injections SQL avec htmlentities($_POST["txt_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 !