|
From: | Eldy |
Subject: | Re: [Dolibarr-dev] Cote SQL sur numerique |
Date: | Fri, 27 Feb 2004 21:39:27 +0100 |
User-agent: | Mozilla Thunderbird 0.5 (Windows/20040207) |
Rodolphe Quiédeville wrote:
Le Vendredi 27 Février 2004 11:59, Eric Seigne a écrit :On Thu, Feb 26, 2004 at 06:01:19PM +0100, Rodolphe Quiédeville wrote:Salut, Destiné à Eric mais intéresse tout le monde, pourquoi dans societe.class.php tu cotes dans la requete sql l'id qui est un numérique ? <<<<<<< variant A $sql .= " WHERE s.idp = ".$this->id; $sql .= " AND s.fk_stcomm = st.id";variant B$sql .= " WHERE s.idp = '".$this->id . "'"; ======= end La variant A est la mienne et la B la tienne, je ne comprends pas pourquoi tu mets des cotes autour de $this->id ?Hello, la 1ere réponse est par habitude la seconde est que j'ai déjà eu des bugs lourds de conséquences à cause de cascades, imagine que t'a un bug dans $this->id qui deviendrait par exemple null ça donnerait une requete WHERE s.idp = AND s.fk_stcomm = st.id et je préfère avoir WHERE s.idp = '' AND s.fk_stcomm = st.id la 3° c'est que comme php ne gère pas les type $this->id peut porter n'importe quoi, y compris du texte valà en fait si vous ne voulez pas de quotes autour des champs qui "devraient" etres des nombres je me plie à votre décision, c'est beaucoup plus une question d'habitude de ma part, systèmatiquement j'encadre de quotes (et je addslashes aussi tous les champs pour essayer d'eviter les écrasements de requetes SQL) même si ce n'est pas indispensable ... et à vrai dire je suis heureux que tu me pose la question parceque je me demande maintenant ce qu'il vaut mieux faire :o) un expert SQL dans la salle avant que je reprenne mes cours de l'iut ?De mon coté dans une vieille version Mysql il n'acceptait pas les cotes sur des numériques (ou alors postgresql ma mémoire flanche) c'est pour cela que mon étonnement est né, disons que je préfère sans mais je n'irais pas corriger si tu en mets cela ne me gene pas du moment que c'est fonctionnel._______________________________________________ Dolibarr-dev mailing list address@hidden http://mail.nongnu.org/mailman/listinfo/dolibarr-dev
Mon point de vue...En effet un bug peut vite générer une requete avec un id vide mais dans ce cas, cela doit générer une erreur
de syntaxe ?Par contre pour la sécurité (problème d'injections SQL), la quote est utile mais seulement si le addslashes est aussi appliqué sur le champ. Sans quoi ile est toujours possible d'injecter une variable qui ferme la quot suivi d'une condition toujours vrai pour forcer un
comportement anormal de la requete. Le problème c'est que les quot + addslashes, ca devient vite lourd à écrire.Les appliquer sur toutes les requetes en rapports avec le login (select dans la tables des utilisateurs pour vérifier la présence/validité du compte, etc...) est donc important car ce sont les premières pages utilisées pour une tentative d'accès par injection SQL. Pour les autres, j'avoue que c'est une question de patiente que je n'ai pas...
Autre question :Un IRC ne serait-il pas utile ? Peut-etre plus adaptée qu'une ML ? C'est juste une idée dans l'air...
-- Laurent Destailleur for AWStats, AWBot and CVSChangeLogBuilder. --------------------------------------------------------------- EMail: address@hidden AWStats : http://awstats.sourceforge.net AWBot : http://awbot.sourceforge.net CVSChangeLogBuilder : http://cvschangelogb.sourceforge.net
[Prev in Thread] | Current Thread | [Next in Thread] |