Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1701 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Les magic quotes : bien/pabien ?

 


A votre avis, faut-il setter les magic quotes à on ou off ?




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

Les magic quotes : bien/pabien ?

n°618837
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 22-01-2004 à 13:10:42  profilanswer
 

Vala, c'est une question que je me pose depuis un pitit bout de temps et ch'uis tombé sur cet article tout à l'heure : http://www.webmasterstop.com/tutor [...] otes.shtml
Pour tous ceux qui ont fait un peu de PHP/MySQL avec ou sans submit de formulaire, vous avez très certainement été confrontés au problème. Du coup, vous avez fait quoi ? striplashes() et magic_quotes à on ou l'inverse ?
Perso, je fais magic_quotes à on, mais j'me pose de plus en plus la question de la pertinence de cette feature.
 
Des avis éclairés ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
mood
Publicité
Posté le 22-01-2004 à 13:10:42  profilanswer
 

n°618882
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 22-01-2004 à 14:16:18  profilanswer
 

Putain, 20 vues et 2 votes, chu bien avancé [:ddr555] Parlez, bon dieu :fou:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°618884
Profil sup​primé
Posté le 22-01-2004 à 14:17:36  answer
 

honnetement j'en sais rien j'ai fait un peu de php dans ma jeunesse mais je me souvien pas de l'option magic quotes, je me souvien que desfois j'utilisai stripslashes mais je me souvien plus du contexte

n°618897
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 22-01-2004 à 14:24:54  profilanswer
 

Ba en général, on utilise stripslashes pour virer les sales \ qui auraient pu être rajoutés par les magic_quotes, justement [:ddr555] 'fin moi j'l'ai jamais utilisé autrement :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°618901
uriel
blood pt.2
Posté le 22-01-2004 à 14:28:19  profilanswer
 

magic quote ON pour moi... jamais eu de problemes  [:spamafote]  
et aussi stripslashes si besoin...
le mec qui a ecrit l'article a l'air un peu cinglé :o

Citation :


Magic Quotes are Evil!
 
While you sleep, they whisper in your dreams -
 
\'Use magic quotes. You know you want to. Go on. It\\'s just so easy\\\'.
 
Do not succumb!. They may seem like a good idea to start with, saving you from extra work, but one day you will regret it. If you have to move host for example, or give your code to someone less capable than yourself, you will pay the price!  


Message édité par uriel le 22-01-2004 à 14:29:01

---------------
IVG en france
n°618904
Profil sup​primé
Posté le 22-01-2004 à 14:29:37  answer
 

Taiche a écrit :

Ba en général, on utilise stripslashes pour virer les sales \ qui auraient pu être rajoutés par les magic_quotes, justement [:ddr555] 'fin moi j'l'ai jamais utilisé autrement :o

en gros c quoi les magic quotes ? ca rajoute des \ ou il faut pr mettre des cotes dans une chaine de caractères ?

n°618915
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 22-01-2004 à 14:32:36  profilanswer
 

Bin ui ; ça rajoute \ pour les ', \ et NUL. Perso ça m'a toujours gavé de faire des stripslashes donc autant savoir ce qui est bien ou pas :o
 
Uriel : :jap: C'est vrai que le gars bon bin il a l'air un brin intégriste m'enfin il a p'têt 2-3 points pas trop cons [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°618919
nraynaud
lol
Posté le 22-01-2004 à 14:34:35  profilanswer
 

les magic_quotes sapu, ça ne sécurise rien du tout car suivant où on envoie la chaine, la notion de protéger n'est pas la même.
La bonne méthode c'est d'arrêter le délire sur les concaténations de chaines. Avoir par exemple des fonction SQL de bindng des arguments d'un where (et des statements préparés au passage), avoir le même type de chose pour les lignes de commande, etc.
 
ça donnera du code plus propre, plus sûr et plus rapide.


---------------
trainoo.com, c'est fini
n°618932
uriel
blood pt.2
Posté le 22-01-2004 à 14:43:08  profilanswer
 

nraynaud a écrit :


ça donnera du code plus propre, plus sûr et plus rapide.


 
là suis d'accord, moi c'etait pour un usage personnel alors j'ai fais la faignasse :/


---------------
IVG en france
n°618935
gizmo
Posté le 22-01-2004 à 14:43:37  profilanswer
 

nraynaud a écrit :

les magic_quotes sapu, ça ne sécurise rien du tout car suivant où on envoie la chaine, la notion de protéger n'est pas la même.
La bonne méthode c'est d'arrêter le délire sur les concaténations de chaines. Avoir par exemple des fonction SQL de bindng des arguments d'un where (et des statements préparés au passage), avoir le même type de chose pour les lignes de commande, etc.
 
ça donnera du code plus propre, plus sûr et plus rapide.


+1

mood
Publicité
Posté le 22-01-2004 à 14:43:37  profilanswer
 

n°618942
simogeo
j'ai jamais tué de chats, ...
Posté le 22-01-2004 à 14:46:27  profilanswer
 

magic quotes suxxent mais sur les mutu, sont souvent On pour des raisons de sécurité.... et il n'est pas toujours possible de les virer. sauf par le biais de fonction fait maison .....
 
personnellement j'ai décidé de prendre l'habitude de coder avec magic_quotes 1 et d'effectuer mes traitements en conséquence.


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°618961
MagicBuzz
Posté le 22-01-2004 à 14:55:34  profilanswer
 

sapuduku et php c'est de la merde parceque c'est à on par défaut maintenant

n°618963
uriel
blood pt.2
Posté le 22-01-2004 à 14:57:46  profilanswer
 

MagicBuzz a écrit :

sapuduku et php c'est de la merde parceque c'est à on par défaut maintenant


 
[:kiki]


---------------
IVG en france
n°618972
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 22-01-2004 à 15:00:41  profilanswer
 

Merci à tous pour ces retours :jap:
Quant aux trolleurs, ils peuvent aller se faire mettre foutre plaisir à troller ailleurs :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°618975
KdZ'
Simple®
Posté le 22-01-2004 à 15:00:59  profilanswer
 

MagicBuzz a écrit :

sapuduku et php c'est de la merde parceque c'est à on par défaut maintenant


 
Hein ? :o


---------------
GENERATION MOBILES : Imprimantes GSM & logos/sonneries/jeux
n°618984
MagicBuzz
Posté le 22-01-2004 à 15:06:10  profilanswer
 

je troll pas. magicquote qui est une merde infâme (d'où il se permet de modifier les variables sans rien dire, en utilisant en plus un truc qui n'est pas compatible avec la plupart des SGBD, et cnie ?)
 
et ces gros crétins qui décident des paramètres par défaut de PHP ont eu la merveilleuse idée de mettre cette daube à on par défaut.
 
c'est de la merde et c'est des gros tocards, et je vois pas en quoi c'est troller que de dire une vérité. putain, le libre et le gnu ça peut être que bien et génial ? c'est quoi c'te règle piniouf là ?


Message édité par MagicBuzz le 22-01-2004 à 15:07:18
n°618988
uriel
blood pt.2
Posté le 22-01-2004 à 15:10:39  profilanswer
 

MagicBuzz a écrit :


c'est de la merde et c'est des gros tocards, et je vois pas en quoi c'est troller que de dire une vérité. putain, le libre et le gnu ça peut être que bien et génial ? c'est quoi c'te règle piniouf là ?


 
bordel, mais tu te dis jamais 'c'est bizarre souvent sur les topics ou je passe, ça part en vrille à cause de ce que je dis?'  [:uriel]  
 
Oui, c'est une erreur de leur part et c'est condamnable, mais ça n'a rien à voir avec 'php c'est de la merde' :o  


---------------
IVG en france
n°618993
MagicBuzz
Posté le 22-01-2004 à 15:12:11  profilanswer
 

s'd'la merde :p
 
z'avez qu'à pas me dire que vb s'd'la merde à longueur de journée. j'ai passée une mauvaise soirée hier, et ce soir je vais en passer une autre, faut que je décompresse, alors php z'ont pas droit à l'erreur c'est tout :p et pis vous avez qu'à être moins succeptible, le 2nd degré ça existe aussi


Message édité par MagicBuzz le 22-01-2004 à 15:12:55
n°618994
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 22-01-2004 à 15:12:34  profilanswer
 

MagicBuzz a écrit :

je troll pas. magicquote qui est une merde infâme (d'où il se permet de modifier les variables sans rien dire, en utilisant en plus un truc qui n'est pas compatible avec la plupart des SGBD, et cnie ?)
 
et ces gros crétins qui décident des paramètres par défaut de PHP ont eu la merveilleuse idée de mettre cette daube à on par défaut.
 
c'est de la merde et c'est des gros tocards, et je vois pas en quoi c'est troller que de dire une vérité. putain, le libre et le gnu ça peut être que bien et génial ? c'est quoi c'te règle piniouf là ?


[:mlc] Putain mais t'as lu où que j'disais tout ça ?
Bon alors de 2 choses l'une : soit t'argumentes (positivement, négativement, j'm'en fous) de façon posée et sans balancer des généralités à la con ni d'insultes, soit tu te casses. J'ai pas posé ce topic pour aider les trolls anti ou pro-PHP ; y a une feature dont l'utilisation me paraît douteuse, j'lis un article qui est contre, donc j'demande des avis CONSTRUCTIFS et RESPECTUEUX.
 
Merci.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°619000
MagicBuzz
Posté le 22-01-2004 à 15:14:52  profilanswer
 

select * from maTable where field = \'toto\'
 
Ben désolé, mais c'est pas du SQL 92.
 
Et le souci, c'est qu'avec cette daube activée (qui a certainement son utilité dans 1% des cas) on peut pas se débarrasser ce ces \' de merde.
 
Ca te va comme argument ?

n°619004
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 22-01-2004 à 15:16:15  profilanswer
 

MagicBuzz a écrit :


Ca te va comme argument ?


C'est déjà mieux :D Désolé hein, mais j'aime pas les phrases à haut potentiel belliqueux :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°619619
zion
Plop
Posté le 23-01-2004 à 01:12:19  profilanswer
 


Perso je suis plutôt contre... En principe cette fonction magique est censée empecher les sql injection et cie... C'est bien pour les boolays mais oh maitre que nous sommes on en a pas besoin :o
 
1. La plupart des sgbd te permettent d'interdire d'envoyer plusieurs requêtes par défaut (c'est le cas de mysql), donc de toute facon ca limite déjà les injections (ok y a tjs moyen de modifier la requête en elle même mais pas d'en faire 2).
 
2. Ca a en effet la conséquence de souvent ne pas enlever ces * de quotes dans un affichage, quotes que l'on n'a jamais foutues nous même donc qu'on comprends pas toujours d'ou ca vient (jusqu'à ce qu'on découvre la feautre :o). Bref, c'est pas du tout parfait.
 
3. Perso pour tout ce qui est SQL j'ai ma petite classe (un rien plus complexe que ca mais bon) qui en gros me permet de stocker toutes mes requêtes dans un fichier (c pas tout a fait ca mais je vais simplifier :D) et de remplacer des variables par ce dont j'ai envie... variables qui sont évidemment encodées et vérifiées pour éviter tout problème... Donc pas de bug, donc pas de magic quote, donc youplaboum le monde est parfait [:ddr555]

n°619631
fabien
Vive la super 5 !
Posté le 23-01-2004 à 01:24:34  profilanswer
 

MagicBuzz a écrit :

select * from maTable where field = \'toto\'
 
Ben désolé, mais c'est pas du SQL 92.
 

espece de cretin, c pas la que ca se met les backslashes  [:kiki]
 

Citation :

select * from maTable where field = 'c\'est nul tes arguments';


Message édité par fabien le 23-01-2004 à 01:24:45

---------------
Découvre le HFRcoin ✈ - smilies
n°619645
MagicBuzz
Posté le 23-01-2004 à 01:57:54  profilanswer
 

fabien > select * from maTable where field = 'c\'est nul tes arguments';
 
Ouais, cool, en effet (enfin, ça dépends, on peut quand même se retrouver avec des quotes placées n'importe où si on fait pas gaffe).
 
Dans tous les cas, fait passer ta super requpète à SQL Server par exemple, et il va t'en dire des nouvelles. Le \' n'est pas la façon d'échapper les quote en SQL, à partir de là, c'est une hérésie que magicquote foute des \'.
 
Ce serait à la limite des '' à la place, je dis pas (ça n'en reste pas moins goret) au mois ça serait un minimum compatible avec sa fonction première.

n°619646
the real m​oins moins
Posté le 23-01-2004 à 02:02:57  profilanswer
 

y'aurait pas un leger probleme dans c't'article, avec leurs ?> qui trainent dans leurs quotes?
un problem de magic quotes peut etre?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°619648
the real m​oins moins
Posté le 23-01-2004 à 02:08:19  profilanswer
 

Zion a écrit :


Perso je suis plutôt contre... En principe cette fonction magique est censée empecher les sql injection et cie... C'est bien pour les boolays mais oh maitre que nous sommes on en a pas besoin :o

je suis contre aussi, mais je vois pas en quoi ça protegerait d'une "sql injection" ?
(j'aime bien les nu-hackerz et leurs termes branchés pour désigner un truc trivial)
un exemple concret?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°619727
MagicBuzz
Posté le 23-01-2004 à 09:51:30  profilanswer
 

select * from users where login = '$login' and password = '$password'
 
=> Login = "MagicBuzz"
=> Password = "Y vous zemmerde' or 1 = 1 --"
 
Tu peux tester ça...
 
Ca transforme ta requête en :
 
select * from users where login = 'MagicBuzz' and password = 'Y vous zemmerde' or 1 = 1 --'
 
Ce qui est à la fois valide, et fera en sorte que la requête retournera systématiquement une ligne même si le mot de passe est mauvais.

n°619732
MagicBuzz
Posté le 23-01-2004 à 09:53:23  profilanswer
 

Avec les quotes magiques, la requête devient select * from users where login = 'MagicBuzz' and password = 'Y vous zemmerde\' or 1 = 1 --'  
 
Et ça plante plus... Sauf si on utilise autrechose que MySQL.
L'avantage c'est qu'avec SQL Server, ça plantera tout le temps dans tous les cas dès qu'il y a une quote. Au moins on est blindés :sarcastic:

n°619743
the real m​oins moins
Posté le 23-01-2004 à 09:57:45  profilanswer
 

ha excellent. merci pour l'exemple.
'fin bon, faut vraiment etre à la ramasse pour pas voir que les ' posent probleme aussi.
d'un autre côté je me demande si j'aurais pensé à échaper les quotes sur un champ de password.
tiens jvais essayer sur l'intranet ici pour voir


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°619750
uriel
blood pt.2
Posté le 23-01-2004 à 09:59:43  profilanswer
 

the real moins moins a écrit :

ha excellent. merci pour l'exemple.
'fin bon, faut vraiment etre à la ramasse pour pas voir que les ' posent probleme aussi.
d'un autre côté je me demande si j'aurais pensé à échaper les quotes sur un champ de password.
tiens jvais essayer sur l'intranet ici pour voir


 
ben perso, c'est comme ça que j'ai réussi à hacker mon propre site, suite à quoi j'ai utilisé les magic quotes (ouais je sais c'est mal :o)  
va falloir que je trouve une meilleur solution :/


---------------
IVG en france
n°619766
MagicBuzz
Posté le 23-01-2004 à 10:15:44  profilanswer
 

La fonction "quote()" que je poste une fois par semaine (certes, je l'écris en ASP, m'enfin c'est pas la mort à traduire en PHP...) est LA solution, à la fois SIMPLISSIME et EFFICACE pour pas avoir ce problème.
 
En entrée, une chaîne.
 
En sortie, une chaîne entre guillemets avec toutes les quotes à l'intérieur doublées. C'est simple comme choux, et c'est inviolable. T'as juste à utiliser SYSTEMATIQUEMENT cette fonction lorsque tu alimentes tes requêtes en données, même si c'est des constantes, même si t'es sûr qu'il n'y a pas de quote, dans TOUS les cas.
Sur un site de commerce, je vous conseille même IMPERATIVEMENT d'utiliser cette technique aussi (ET SOURTOUT) pour les nombres.
 
Parceque...
 
insert into basket_line (codpro, qty) values ($codpro, $qty)
 
bah...
 
Si l'utilisateur peut saisir la quantité, il lui suffit de mettre "0); update produits set prix = 0; commit;" dans la quantité, et je vous laisse imaginer ce que ça donne... Et là, magicquote n'y peut rien (bah ouais, c'est à la fois merdique et inutile ce truc...)
 
Alors que si tu vous une chaîne qui contient un nombre dans un champ numérique, la norme SQL prévoit le transtypage implicite. Par contre, si la chaîne n'est pas un nombre (ici c'est le cas) ben ça plante.
 
Et vous allez me dire "oui mais sur le site on bloque la taille du champ, pis on a un contrôle en JS, puis un autre en PHP avant d'aller dans la requête gniagnia".
 
Vous verrez dans 2 ans quand une personne (ou vous-même) viendra faire une modif dans votre code, si elle va bien se faire chier à refaire les tests. "c'est quoi ce truc ? je vire".

n°619772
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-01-2004 à 10:18:03  profilanswer
 

Peros, pour tout champ rentré par l'utilisateur, j'fais systématiquement une épuration sur les caractères sensibles : ' % * en font partie.
Je pense que j'vais utiliser ça en lieu et place des magic quotes.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°619780
MagicBuzz
Posté le 23-01-2004 à 10:21:58  profilanswer
 

perso, j'utilise jamais LIKE, du coup j'ai pas à me faire ch*er avec % et * ;)

n°619783
fabien
Vive la super 5 !
Posté le 23-01-2004 à 10:23:45  profilanswer
 

Taiche a écrit :

Peros, pour tout champ rentré par l'utilisateur, j'fais systématiquement une épuration sur les caractères sensibles : ' % * en font partie.
Je pense que j'vais utiliser ça en lieu et place des magic quotes.

ya la fonction addslashes() si tu veux pas utiliser les magic quotes :o


---------------
Découvre le HFRcoin ✈ - smilies
n°619786
MagicBuzz
Posté le 23-01-2004 à 10:24:45  profilanswer
 

addSlashes est aussi merdique que magicquote, puisque \' N'EST PAS STANDARD. Ca ne figure pas dans la norme SQL.
 
Avec Oracle :
 
http://perso.wanadoo.fr/magicbuzz/sql.gif
 
Idem avec SQL Server.
 
A ma connaissance, seul MySQL supporte ce truc.


Message édité par MagicBuzz le 23-01-2004 à 10:29:53
n°619789
*syl*
--> []
Posté le 23-01-2004 à 10:25:17  profilanswer
 

Oui mais le monsieur ne connait que mysql faut l'excuser :D

n°619794
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-01-2004 à 10:26:10  profilanswer
 

MagicBuzz a écrit :

perso, j'utilise jamais LIKE, du coup j'ai pas à me faire ch*er avec % et * ;)


Bin ouais mais moi j'fais une sorte de moteru de recherche, donc... (d'ailleurs, si vous avez des scénarios de test intéressants, chu preneur :D)

fabien a écrit :

ya la fonction addslashes() si tu veux pas utiliser les magic quotes :o


Ouais mais ça résoud pas le pb des % et des * [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°619795
fabien
Vive la super 5 !
Posté le 23-01-2004 à 10:26:17  profilanswer
 

MagicBuzz a écrit :

addSlashes est aussi merdique que magicquote, puisque \' N'EST PAS STANDARD. Ca ne figure pas dans la norme SQL.

t'es lourd :o
 
dans la norme SQL tu fait comment alors pour echaper les caracteres speciaux ?


---------------
Découvre le HFRcoin ✈ - smilies
n°619797
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-01-2004 à 10:27:05  profilanswer
 

fabien a écrit :


dans la norme SQL tu fait comment alors pour echaper les caracteres speciaux ?  


C'est 2 simples quotes genre '', je crois.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°619798
fabien
Vive la super 5 !
Posté le 23-01-2004 à 10:27:39  profilanswer
 

Taiche a écrit :


Bin ouais mais moi j'fais une sorte de moteru de recherche, donc... (d'ailleurs, si vous avez des scénarios de test intéressants, chu preneur :D)
 
Ouais mais ça résoud pas le pb des % et des * [:ddr555]

t'as un url vers ton moteur ?


---------------
Découvre le HFRcoin ✈ - smilies
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Les magic quotes : bien/pabien ?

 

Sujets relatifs
Un IDE C# sous linux qui soit bien?Le Python est-il bien reconnu dans les entreprises ?
Magic QuotesMini défi PHP pour ceux qui maitrisent bien les tableaux
le c c bien?Traitement des quotes
Le javascript du forum ne fonctionne pas bien avec konqueror...[SDL] je comprends pas bien une fonction...
Dites moi? C bien impossible de créer un prog qui allume un pc ...? 
Plus de sujets relatifs à : Les magic quotes : bien/pabien ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR