String qui contient un ' ou un \ - PHP - Programmation
Marsh Posté le 13-07-2005 à 14:50:48
Ben ouais ![[:dawa] [:dawa]](https://forum-images.hardware.fr/images/perso/dawa.gif) Non seulement ça plante, mais en plus ça fait une belle faille
 Non seulement ça plante, mais en plus ça fait une belle faille ![[:dawa] [:dawa]](https://forum-images.hardware.fr/images/perso/dawa.gif) 
 
 
Franchement... Ce problème est abordé tout de suite, dès qu'on t'apprend mysql_query. C'est la faille la plus répandu, celle qui fait l'objet de plus d'article. C'est quand-même étonnant que tu ne sois pas tombé dessus. T'as pas dû beaucoup chercher 
Marsh Posté le 13-07-2005 à 14:52:01
désolé, je suis un autodidacte  
 
Est-ce que tu peux m'expliquer comment contrer ça ?
Marsh Posté le 13-07-2005 à 14:53:21
A toi de chercher ![[:spamafote] [:spamafote]](https://forum-images.hardware.fr/images/perso/spamafote.gif) Je suis aussi autodidacte, et c'est la première chose que j'ai pu lire
 Je suis aussi autodidacte, et c'est la première chose que j'ai pu lire ![[:spamafote] [:spamafote]](https://forum-images.hardware.fr/images/perso/spamafote.gif)
Marsh Posté le 13-07-2005 à 14:53:54
Apprend à chercher, sinon on te verra beaucoup trop souvent ici 
Marsh Posté le 13-07-2005 à 14:55:04
Et les méthodes que j'ai énoncées, elles sont pas bonnes ?  
 
EDIT: j'ai cherché, mais je ne trouve rien ![[:sinclaire] [:sinclaire]](https://forum-images.hardware.fr/images/perso/sinclaire.gif) 
 
J'ai cherché sur le forum, mais c'est 3 caractères minimumu : je ne vois pas quoi mettre comme termes pour être pertinent 
Marsh Posté le 13-07-2005 à 14:56:51
Non  
 
 
Regarde la doc sur http://fr.php.net/manual/en/function.mysql-query.php, et particulièrement certains exemples
Marsh Posté le 13-07-2005 à 15:00:15
voire un mysql_real_escape_string, vu que c'est pour mysql...
Marsh Posté le 13-07-2005 à 15:14:00
| skeye a écrit : voire un mysql_real_escape_string, vu que c'est pour mysql...:o | 
 
 
Je viens de regarder, c'est intéressant, mais au final, ça fait quasiment la même chose que addslashes, non ?
Marsh Posté le 13-07-2005 à 15:14:58
| nero27 a écrit : Je viens de regarder, c'est intéressant, mais au final, ça fait quasiment la même chose que addslashes, non ? | 
 
en plus spécifique...ça existe, autant en profiter! 
Marsh Posté le 13-07-2005 à 15:16:02
| nero27 a écrit : Je viens de regarder, c'est intéressant, mais au final, ça fait quasiment la même chose que addslashes, non ? | 
 
Ca escape genre \n en plus, ça peut être utile
Marsh Posté le 13-07-2005 à 15:17:55
Ah oui, en effet. 
Par contre, ça va me donner un boulot monstre : ajouter sur tout le site stripslashes pour l'affichage  
 
Marsh Posté le 13-07-2005 à 15:20:25
pour l'affichage, c'est : 
| echo htmlspecialchars(stripslashes($pouet), ENT_NOQUOTES); | 
Marsh Posté le 13-07-2005 à 15:23:43
| blablagerezkljrez a écrit : Pauvre petit  | 
 
Niveau sécurité, ça ne craint rien car ça ne concerne pas les login de connexion 
Marsh Posté le 13-07-2005 à 17:12:58
| FlorentG a écrit : pour l'affichage, c'est :  
 | 
 
 
Euh a priori stripslashes est inutile pour l'affichage, si y'a des slashes stockés dans la base c'est que le magic_quotes_gpc est activé et qu'un addslashes/mysql_real_escape_string est fait par dessus, sans stripslashes intermédiaire (à l'envoi, voir l'exemple avec quote_smart() dans la doc de mysql_real_escape_string). 
 
Sinon, perso je fais un htmlentities sans ENT_NOQUOTES. Y'a une raison particulière pour htmlspecialchars plutôt que htmlentities ("htmlspecialchars suffit" ?) et le ENT_NOQUOTES ("pas besoin de convertir les quotes" ?). Merci d'avance. 
Marsh Posté le 13-07-2005 à 18:25:01
| sielfried a écrit : Euh a priori stripslashes est inutile pour l'affichage, si y'a des slashes stockés dans la base c'est que le magic_quotes_gpc est activé et qu'un addslashes/mysql_real_escape_string est fait par dessus, sans stripslashes intermédiaire (à l'envoi, voir l'exemple avec quote_smart() dans la doc de mysql_real_escape_string). | 
 
ouuuuups  C'est effectivement une erreur de ma part
 C'est effectivement une erreur de ma part 
 
| sielfried a écrit : Sinon, perso je fais un htmlentities sans ENT_NOQUOTES. Y'a une raison particulière pour htmlspecialchars plutôt que htmlentities ("htmlspecialchars suffit" ?) et le ENT_NOQUOTES ("pas besoin de convertir les quotes" ?). Merci d'avance.  | 
 
Le problème d'htmlspecialchars, c'est qu'il convertit tout (genre les 'é' en é . Moi ça m'intéresse pas, je fous tout en unicode
. Moi ça m'intéresse pas, je fous tout en unicode ![[:joce] [:joce]](https://forum-images.hardware.fr/images/perso/joce.gif) Donc j'ai juste besoin d'escaper les &, < et >. Après y'a un autre cas de figure, c'est quand on echo un attribut (genre <img src="pouet.jpeg /> ), là faut escaper les quotes, donc faut mettre ENT_QUOTES
 Donc j'ai juste besoin d'escaper les &, < et >. Après y'a un autre cas de figure, c'est quand on echo un attribut (genre <img src="pouet.jpeg /> ), là faut escaper les quotes, donc faut mettre ENT_QUOTES 
Marsh Posté le 13-07-2005 à 18:40:47
Reply
Marsh Posté le 13-07-2005 à 14:48:47
Bonjour,
voilà mon problème :
je fais une insertion dans la base de donnée MySQL avec une donnée d'un formulaire de cette façon :
Seulement, lorsque la chaine $_POST['nom'] contient un ' ou un \, la requête plante
Pour contrer le ', j'ai fait ceci :
et
=> ça fonctionne en local chez moi, mais pas sur le site
Que puis-je faire ?
Pour \, je n'ai aucune idée ...
Merci d'avance