Apostrophe et antislash

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

davidtennis
Nouveau WRInaute
 
Messages: 46
Inscription: Jeu Avr 05, 2007 22:15

Apostrophe et antislash

Message le Jeu Avr 05, 2007 22:33

Bonjour,

J'ai des formulaires avec des champs text remplis par les utilisateurs du site.
Lorsque l'utilisateur entre un apostrophe, il arrive que celui si soit stocké avec un anti-slash dans la base de donnée, voire même avec plusieurs antislash.
J'ai donc dans certaines entrées de la BDD des :
"J\\\\\\\\\\\\'aime m\\\\\\\\\\\'amuser"...

Savez vous comment faire pour éviter que ces antislashs apparaissent ?

Merci !


latitude1661
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Jeu Mai 25, 2006 16:14

Message le Jeu Avr 05, 2007 22:51

Verifie que tu n'aie pas des boucles dans ton code php qui applique un addslashes plusieures fois sur le meme string.

davidtennis
Nouveau WRInaute
 
Messages: 46
Inscription: Jeu Avr 05, 2007 22:15

Message le Ven Avr 06, 2007 0:52

Je fais simplement un:
$message = $HTTP_POST_VARS["message"];

suivi d'une query:
$query = "INSERT INTO $table2 VALUES (...,'$message',...)";

et pourtant c'est parfois sauvegardé avec plein d'antislashs dans la BDD....

Popop56
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 184
Inscription: Ven Jan 05, 2007 18:52

Message le Ven Avr 06, 2007 1:30

:!: c'est pas bien ce que tu fais la ! Il faut que tu protège un minimum ta chaine avec mysql_real_escape_string si tu veux pas avoir des problèmes

Pour ton problème regardes peut etre au niveau des magic quotes


lupuz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 207
Inscription: Mer Mar 15, 2006 23:41

Message le Ven Avr 06, 2007 8:20

Ce sont les POST qui ajoute des \



$string = eregi_replace("\'","'", $string).

Inazo
Nouveau WRInaute
 
Messages: 13
Inscription: Ven Avr 06, 2007 15:00

Message le Ven Avr 06, 2007 15:28

Salut à tous,

Déjà ceci est très mauvais pour la sécurité :

Code: Tout sélectionner
$message = $HTTP_POST_VARS["message"];

suivi d'une query:
$query = "INSERT INTO $table2 VALUES (...,'$message',...)";


Donc ceci est mieux :

Code: Tout sélectionner

if(get_magic_quotes_gpc())
     stripslashes($_POST["message"]);

$message = mysql_escape_string($_POST["message"]);
$query = "INSERT INTO $table2 VALUES (...,'$message',...)";



Pourquoi faire un stripslashes si tu as les magic_quotes_gpc d'activer ? Tout simplement car se sont les magic_quotes_gpc qui te rajoute les \ et si tu en as plusieurs c'est que l'utilisateurs à fait une modification de sont nom par exemple mais que tu n'as pas enlever les \.

Donc pour commencer désactive les magic_quotes_gpc utilise la fonction de mysql pour te protéger et utilise les fonctions htmlentities ou htmlspecialchars avec l'option ENT_QUOTES.

De plus si tu as ce soucis c'est que tu ne fais pas attention le moins du monde à ce que tes utilisateurs t'envoies via les formulaires et tu es donc potentiellement attaquable pour le XSS et injection SQL.

Cordialement Inazo.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Bellegarde-webb, forummp3 et 0 invités