Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/05/2006, 11h33   #1
Rédacteur
 
Homme Jean-Pierre
Inscription : août 2005
Messages : 333
Détails du profil
Informations personnelles :
Nom : Homme Jean-Pierre
Âge : 26
Localisation : Suisse

Informations forums :
Inscription : août 2005
Messages : 333
Points : 442
Points : 442
Par défaut [Sécurité] Options magic_quote_gpc, magic_quote_runtime et magic_quote_sybase

Hello,

Une question par rapport à ces directives :

magic_quote_gpc
échappe les tableaux GET, POST et COOKIE.

Si (cas particulier) magic_quote_sybase est activée, certains caractères qui étaient échappés par magic_quote_gpc ne le sont plus !

magic_quote_runtime travail sur toutes les données provenant de l'éxtérieur (y compris SGBD).

Pourquoi PHP n'activent-ils pas la directive magic_quote_runtime par défaut plutôt que magic_quote_gpc ?..

Ca couvrirait toutes les éventualités en une seule fois...

Merci
Guardian_7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 12h50   #2
Membre chevronné
 
Avatar de Kioob
 
Olivier Bonvalet
Inscription : septembre 2004
Messages : 550
Détails du profil
Informations personnelles :
Nom : Olivier Bonvalet
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2004
Messages : 550
Points : 723
Points : 723
Envoyer un message via MSN à Kioob
Hello,

- parce que ça foutrait un beau bordel dans les programmes existants.
- l'expérience magic_quote_gpc a montré que ça ne résolvait aucune problème de sécurité, bien au contraire. D'ailleurs si je ne m'abuse les magic_quote_XXX vont être supprimés de PHP 6.
- parce que ça sert à rien : tu fais un "select" en base de données, pour afficher le contenu par exemple, il va t'ajouter des slashs partout ! Ca n'a aucun sens. Et pour les (rares) cas où ça peut servir, bah le mieux c'est que le développeur fasse le addslashes() lui même.... surtout qu'il est bien le seul à savoir s'il y en a besoin ou non.
__________________
Google is watching you !
Kioob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h31   #3
Rédacteur
 
Homme Jean-Pierre
Inscription : août 2005
Messages : 333
Détails du profil
Informations personnelles :
Nom : Homme Jean-Pierre
Âge : 26
Localisation : Suisse

Informations forums :
Inscription : août 2005
Messages : 333
Points : 442
Points : 442
Effectivement vu sous cette angle ça peut causer plus de problème qu'en résoudre.

Il existe plusieurs façons de cerner le problème (en jouant sur ini_get ou les flags .htaccess)... Mais le mieux n'est-il pas de tester si magic_quote_gpc est activée, et dans tous les cas supprimer ses effets (si activée) et echapper manuellement ce qui doit l'être avec une fonction PHP ou spécifique (mysql_real_escape, etc) ?

Je crois que j'ai vu quelque chose en ce sens dans le code source d'un système de gestion...

...Et je ne comprenais pas pourquoi ils avaient fait ça !

Le problème c'est que mon application pourrait être utilisée sur d'autres configurations PHP que les miennes (et accessoirement une multitude de SGBD), ce qui peut-être problématique...

D'où cette vision d'ensemble.
Guardian_7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h44   #4
Membre chevronné
 
Avatar de Kioob
 
Olivier Bonvalet
Inscription : septembre 2004
Messages : 550
Détails du profil
Informations personnelles :
Nom : Olivier Bonvalet
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2004
Messages : 550
Points : 723
Points : 723
Envoyer un message via MSN à Kioob
Yep, la plupart des "grosses applications" ou framework, utilisent une batterie de tests en tous sens pour "gèrer les magic_quotes". Pour la portabilité, pas le choix.

De plus, les magic_quotes ne font pas le même boulot que les fonctions dédiées, du coup typiquement, une variable provenant d'un formulaire va subir ce traitement :

1) addslashes automatique de PHP (magic_quotes_gpc)
2) stripslashes du développeur, pour corriger le problème
3) mysql_real_escape_string(), parce que c'est la seule solution efficace

=> les 2 premiers points auraient pu être évités si cette saleté de magic_quotes n'avait pas été inventé.


D'autre part, un client développe son site en se basant sur le fait que "PHP ajoute les slashs tout seul". Du coup il ne fera aucun test dans ses scripts (très très fréquent). Le jour où il change d'hébergeur (où que l'hébergeur change le paramètre...), patatra : son site est complètement exposé à un piratage, et il ne le sait même pas...


Bref, bien que partant d'une bonne intention, ce truc pourri la vie de beaucoup de développeurs et/ou webmasters, et c'est pourquoi il est retiré de PHP 6.


Note : et le "php_flag" dans ".htaccess", ça ne marche pas chez tous les hébergeurs non plus...
__________________
Google is watching you !
Kioob est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h14.


 
 
 
 
Partenaires

Hébergement Web