Utilisation des addslashes et stripslashes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Utilisation des addslashes et stripslashes

par mosquitout » 23 août 2007, 15:10

:oops: à l'instant j'ouvre la fenêtre et je saute . Encore merci 8-)

par Ryle » 23 août 2007, 14:52

Si tu utilises les bon nom d'index, ca marchera sans doute mieux ;)
$_POST['nomprod'] = $ligne['nomprod'];
$_POST['prixHT'] = $ligne['prix_ht'];
$_POST['url'] = $ligne['url_photo'];

$_POST['nomprod']=(!get_magic_quotes_gpc()) ? stripslashes($ligne['nomprod']):$ligne['nomprod'];
$_POST['prixHT'] = (!get_magic_quotes_gpc()) ? stripslashes($ligne['prixHT']) : $ligne['prixHT'];
$_POST['url'] = (!get_magic_quotes_gpc()) ? stripslashes($ligne['url']) : $ligne['url'];

par mosquitout » 23 août 2007, 14:35

Ok. Une interrogation toutefois.
J'ai ds ma base un enreg qui à
nom = toto
prix = 480.00
url = C:\www\projet\images\10651.jpg

Lorsque j'alimente mon formulaire à l'aide de ces données extraient de la base en utilisant le code
$_POST['nomprod'] = $ligne['nomprod'];
$_POST['prixHT'] = $ligne['prix_ht'];
$_POST['url'] = $ligne['url_photo'];  
Ca marche, j'ai bien mes 3 infos qui s'affichent
En revanche, si je test avec
$_POST['nomprod']=(!get_magic_quotes_gpc()) ? stripslashes($ligne['nomprod']):$ligne['nomprod'];
$_POST['prixHT']   = (!get_magic_quotes_gpc()) ? stripslashes($ligne['prixHT'])   : $ligne['prixHT'];
$_POST['url']         = (!get_magic_quotes_gpc()) ? stripslashes($ligne['url'])        : $ligne['url'];
La, je n'ai plus que mon nomprod qui s'affiche, les autres zone restent à blanc !!???
:shock:

par Ryle » 23 août 2007, 11:38

Après vérification, is_numeric() tolère le '+' et permet également de saisir de l'héxa (donc des lettres). Même si le risque est très limité (toujours pas de caractères spéciaux à échapper), l'idéal serait peut être de tester également is_int() ou is_float(). Tu peux également utiliser ctype_digit() pour plus de tranquilité, bien que cela bloque un signe moins et le séparateur de décimal...

Edit : C'est vrai que le mysql_real_escape_string() ne coûte pas grand chose, mais comme son nom l'indique, cette fonction est faite pour échapper un String, et non pas un nombre ;)

par momox » 23 août 2007, 11:37

Si après tu fais une insertion en bdd, je recommande un petit mysql_real_escape_string() sur la dite valeur, on n'est jamais assez prudent ;)

par mosquitout » 23 août 2007, 11:29

Bah, une fois que tu as testé is-numeric et éventuellement la taille de la saisie, que reste t-il comme possibilité ?

par momox » 23 août 2007, 11:27

Attention tout de même si cette valeur numérique est saisie par un utilisateur ;)
@+

par mosquitout » 23 août 2007, 11:23

Cool, ca me rassure bc et surtout allège un peu le code :D

par Ryle » 23 août 2007, 11:18

Tu as bon.. il n'y a effectivement aucun caractère à échapper dans un nombre :)

Utilisation des addslashes et stripslashes

par mosquitout » 23 août 2007, 11:00

Bjr

Pour un développement sécurisé, faut-il utiliser les addslashes et stripslashes pour les zones numériques ? Après avoir tester is_numérique et éventuellement formaté la zone, il ne devrait à priori pas avoir de raisons pour utiliser ces fonctions. Ai-je bon dans mon raisonnement ? ou tout faux ;)