Échappement des apostrophes

a marqué ce sujet comme résolu.

Bonjour à tous,

J'ai un problème qui me casse la tête depuis plusieurs heures et malgré mes recherches je ne trouve rien. Lorsque j'enregistre en BDD mes apostrophes se retrouvent échappées.

Par exemple je me retrouve avec des champs du genre : "12 place de l'hôtel de ville"

J'utilise PDO et je fais mes requêtes d'insertion avec les méthodes prepare et execute.

Aucun autre traitement n'est appliqué. Si quelqu'un saurait m'aider, ce serait génial. Merci d'avance :)

J'ai cette version : PHP Version 5.3.29

Et les magic_quotes sont à on…

Enfaite j'ai ce problème sur le serveur en ligne et pas en local. Et du coup j'ai jamais pensé de regarder les infos du serveur, c'est un vieux truc.

EDIT : Pour l'insertion j'ai une simple requête comme ceci :

$query = $db->prepare('INSERT INTO table ('champ', 'champ') VALUES (:champ, :champ)'); $query->execute(array('champ' => $champ, 'champ' => $champ));

+0 -0

Fais juste bien attention aux failles d'injections SQL

Il n'en a pas avec sa requête préparée. Et puis s'il y en avait vraiment une, il n'aurait pas justement ce problème de double échappement/échappement persistant. C'est les magic_quotes_gpc qui auraient +/- comblé la faille en réalisant l'échappement manquant (pour une requête non-préparée où les PDO::quote auraient été omis).

Quant aux XSS, ce n'est pas lié aux magic_quotes_gpc.

+0 -0

Il n'en a pas avec sa requête préparée.

Jamais dit le contraire, je l'informe juste. Tu as vu une ligne de son code, rien ne dit qu'une autre partie de son code, ne l'utilise pas. Ou même qu'une des dépendances dans son code, n'utiliserais pas les requêtes préparées. Personne ne sait à part lui !

C'est les magic_quotes_gpc qui auraient +/- comblé la faille en réalisant l'échappement manquant

C'est pas plus ou moins. Elle aurait rien comblé du tout. C'était complètement stupide à la base !

Quant aux XSS, ce n'est pas lié aux magic_quotes_gpc.

Pas sur d'avoir bien compris, le sens de cette phrase !

La phrase la plus importante était « De manière générale, avoir une version de PHP plus supporté. T'expose à des failles de sécurité importante. »

+0 -0

Justement pourquoi en parler si ce n'est pas le sujet ni ne connaît son code ?

C'est pas plus ou moins. Elle aurait rien comblé du tout. C'était complètement stupide à la base !

Je suis entièrement d'accord et ce n'est pas pour rien que cette fonctionnalité a fini par être retirée. Le fait est qu'elle limitait quand même les injections SQL et c'est bien malheureux à dire mais ça a probablement sauvé bon nombre de mauvais codes. Heureusement, mysql et mysqli, en plus, ne permett(ai)ent pas "par défaut" les requêtes dites multistatement, ce qui limite encore plus le champ d'action d'une injection SQL.

La phrase la plus importante était « De manière générale, avoir une version de PHP plus supporté. T'expose à des failles de sécurité importante. »

Pas forcément, PHP sur Red Hat (based) est maintenu bien après l'abandon officiel (= par l'équipe PHP) d'une branche. De toute façon, en mutualisé et s'il n'y a pas plusieurs versions proposées avec un moyen de switcher, il peut difficilement faire autrement.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte