Guide informatique hardware En1heure.com
Articles phares : Quelle alimentation PC | Choisir son ecran LCD PC

Chercher un sujet :

Gestion defficiente des fichiers

Itseasy est un petit projet Open Source de CMS sans base de données. Son but est d'être accessible et rapide.
Participez au développement et / ou suivez son cours à travers cette section ;o)
Site officiel : Itseasy | Démonstration en ligne

Messages: 4
Inscription: Ven Aoû 20, 2004 2:40 pm
Gestion defficiente des fichiersMessagePosté: Ven Aoû 20, 2004 2:51 pm

Salut,

J'ai commence a faire quelques remarques concernant ItsEasy sur kloobik.com. Je vais poursuivre ici . Ce sera plus opportun ;)

ItsEasy utilisant etant un CMS base sur la manipulation de fichiers, il est dommage que la manipulation de ces fichiers ne soit pas plus "propres".
Lorsque on tente d'editer une CSS qui n'existe pas (ou dont les permissions ont ete modifiees), le comportement est erratique.
Beaucoup de message d'erreurs. Tous visibibles.
Warning: fopen(./themes/lightblue/styles.css) [function.fopen]: failed to open stream: No such file or directory in /users/easy/www/0admin_modifier_style_css.php on line 6

Warning: Warning: filesize() [function.filesize]: stat failed for ./themes/lightblue/styles.css in /users/easy/www/0admin_modifier_style_css.php on line 7

Warning: Warning: fread(): supplied argument is not a valid stream resource in /users/easy/www/0admin_modifier_style_css.php on line 7

Warning: Warning: fclose(): supplied argument is not a valid stream resource in /users/easy/www/0admin_modifier_style_css.php on line 50



En lisant les erreurs, on constate avec stupeur que la programmation n'est absolument pas defensive/securisee ! Horreur.
Pour bien faire, une erreur - fatale- devrait interrompre le traitement avec un mesage explicatif. Autrement, et surtout pour un utilisateur lambda, c'est l'incomprehension.
Encore plus lorsque l'utilisateur lit "Votre message a bien été mise à jour." alors qu'en realite aucune mise a jour n'a effectivement pu etre realisee (fichier inaccessible).

Ce genre de probleme peut survenir lorsqu'un fichier est manquant (cas frequent : utilisation d'un nouveau theme), ou simplement lors d'un parametrage malencontreux des permissions (CHMODS)

En clair : si le fichier que l'on souhaite editer n'existe pas, ou n'est pas accessible, cela devrait etre clairement signale avec un message explicatif.


Dans un tout autre registre : autre erreur a corriger :
si l'on attaque une page d'administration du site d'ItsEasy avec un argument inconnu, et en bloquant les cookies (par exemple http://www.en1heure.com/itseasy/0admin_ ... nt=inconnu)
Warning: ob_start(): output handler 'ob_gzhandler' cannot be used after 'URL-Rewriter' in /usr/home/vanquish/public_html/itseasy/header.php on line 5


Ca ne fait pas tres serieux ce genre d'erreur ;)

Messages: 100
Inscription: Ven Avr 23, 2004 4:41 pm
Gestion defficiente des fichiersMessagePosté: Ven Aoû 20, 2004 3:08 pm

vanquish, je crois que tu devrais faire des is_writable sur les fichiers devant/pouvant être modifié et affiché le résultat sur l'accueil ou sur une page d'install pour savoir si on peut utiliser Itseasy ou pas...
http://be.php.net/is_writable
il y a aussi un script interessant en exemple qui chmod si ce n'est pas writable.
Avatar de l’utilisateur
Administrateur
Messages: 1614
Inscription: Ven Mar 26, 2004 7:16 am
Localisation: /var/www/
Gestion defficiente des fichiersMessagePosté: Sam Aoû 21, 2004 9:06 am

Bonjour dash et merci de ton inscription :o)
En effet c'est effroyable...
Pourquoi dis ut que ce n'est pas sécurisé ?

En clair : si le fichier que l'on souhaite editer n'existe pas, ou n'est pas accessible, cela devrait etre clairement signale avec un message explicatif.

Tu as parfaitement raison ! C'était déjà prévu mais je vais plancher là dessus plus tôt que prévu.

Warning: ob_start(): output handler 'ob_gzhandler' cannot be used after 'URL-Rewriter' in /usr/home/vanquish/public_html/itseasy/header.php on line 5


Ca ne fait pas tres serieux ce genre d'erreur Wink

Oui tout a fait et il s'avère(rait) que c'est un bug de PHP lui même ! Affaire à suivre.
Avatar de l’utilisateur
Administrateur
Messages: 1614
Inscription: Ven Mar 26, 2004 7:16 am
Localisation: /var/www/
Gestion defficiente des fichiersMessagePosté: Sam Aoû 21, 2004 2:15 pm

Je ne comprend vraiment pas ce bug, j'ai demandé un peu partout personne ne sait d'où ça vient :\

Messages: 4
Inscription: Ven Aoû 20, 2004 2:40 pm
Gestion defficiente des fichiersMessagePosté: Sam Aoû 21, 2004 8:09 pm

le message d'erreur devrait pourtant etre evidente. La compression du buffer de sortie (via "ob_gzhandler") est interdite apres un URL-rewrite.
la premiere solution consiterait a ne pas compresser le buffer (@ob_start() ).
L'autre solution consisterait a mettre une arobase => @ob_start("ob_gzhandler") ;)


vanquish a écrit:Bonjour dash et merci de ton inscription :o)
En effet c'est effroyable...
Pourquoi dis ut que ce n'est pas sécurisé ?



D'une maniere generale ItsEasy souffre d'un gros probleme de "securite" : aucune gestion des erreurs.

Actuellement, etant donne l'absence de specification explicite du niveau de reporting, c'est le parametrage serveur qui est utilise.
=> Dans la plupart des cas, tous les messages d'erreurs sont indistinctement envoyes a l'ecran. Avec les chemins absolus du serveur.
Ce qui en matiere de securite est une tres mauvaise habitude (cela permet a des personnes mal intentionnees de se faire des idees sur le type d'hebergement). De plus, l'affichage de ce genre d'erreur prouve que l'on maitrise mal son sujet. Ce serait pareil a un auteur qui publierait un ouvrage avec plein de ratures et de corrections manuscrites de dernieres minutes ;)

Quand tu developpes un script, affiche en debut de code
error_reporting( E_ALL );

cela permet de rendre le compilateur php tres chatouilleux.

Ensuite, en production, on peut rendre le compilateur moins sensible aux petites erreurs residuelles.
error_reporting( E_ERROR | E_PARSE);
Avatar de l’utilisateur
Administrateur
Messages: 1614
Inscription: Ven Mar 26, 2004 7:16 am
Localisation: /var/www/
Gestion defficiente des fichiersMessagePosté: Dim Aoû 22, 2004 8:01 am

dash a écrit:le message d'erreur devrait pourtant etre evidente. La compression du buffer de sortie (via "ob_gzhandler") est interdite apres un URL-rewrite.

Hé non, si la traduction de la phrase est évidente, le message ne l'est pas : aucune fonction de réécriture d'URL n'est utilisée. D'où mon étonnement.

la premiere solution consiterait a ne pas compresser le buffer (@ob_start() ).
L'autre solution consisterait a mettre une arobase => @ob_start("ob_gzhandler") ;)

Oui mais ça ne fait que contourner le problème, pas le supprimer.


D'une maniere generale ItsEasy souffre d'un gros probleme de "securite" : aucune gestion des erreurs.

Actuellement, etant donne l'absence de specification explicite du niveau de reporting, c'est le parametrage serveur qui est utilise.
=> Dans la plupart des cas, tous les messages d'erreurs sont indistinctement envoyes a l'ecran. Avec les chemins absolus du serveur.
Ce qui en matiere de securite est une tres mauvaise habitude (cela permet a des personnes mal intentionnees de se faire des idees sur le type d'hebergement).

Oui oui je sais mais dis toi que cette version n'est vraiment qu'un début (v0.3.6 je le rapelle), tout ça est prévu. Comme ça ne concerne que la partie administration (sécurisée) je me suis dit que ça pouvait attendre.

De plus, l'affichage de ce genre d'erreur prouve que l'on maitrise mal son sujet.

Ah.

Ce serait pareil a un auteur qui publierait un ouvrage avec plein de ratures et de corrections manuscrites de dernieres minutes ;)

Non non par ce que l'auteur fait payer la version finale de son livre, la seule qu'il distribue. Il ne met pas gratuitement à disposition une versino de développement.

Quand tu developpes un script, affiche en debut de code
error_reporting( E_ALL );

cela permet de rendre le compilateur php tres chatouilleux.

c'est déjà fait ;)

Messages: 4
Inscription: Ven Aoû 20, 2004 2:40 pm
Gestion defficiente des fichiersMessagePosté: Dim Aoû 22, 2004 4:40 pm

Supprimer 'ob_start("ob_gzhandler")' EST la solution.

D'autre part, pourquoi vouloir compresser le buffer de sortie ? Est-ce vraiment necessaire dans le cadre d'ItsEasy et pour le type de public-cible ?
Je pense ne pas prendre de risque en supposant que la plupart des utilisateurs d'ItsEasy ne devraient pas avoir a se preoccuper de bandes passantes de leur petit site.

Pour la plupart des usages - a defaut d'etude poussee du public-cible- , il est donc raisonnable de supposer que les gains d'une compression http seraient habituellement sans reel interet, alors que la consommation CPU sera loin d'etre nulle avec une telle operation.

=> A mon avis, si la bufferisation est toujours utile, la compression, elle, devrait rester une option (au passage : c'est le cas de phpbb, IPB, etc.) , desactivee par defaut dans le cadre d'ItsEasy. ;)

vanquish a écrit:
Ce serait pareil a un auteur qui publierait un ouvrage avec plein de ratures et de corrections manuscrites de dernieres minutes ;)

Non non par ce que l'auteur fait payer la version finale de son livre, la seule qu'il distribue. Il ne met pas gratuitement à disposition une versino de développement.


Qui a parle de payer ?

Il existe de nombreux documents pour lesquels les auteurs ne sont pas retribues (notes, rapports divers, travaux scolaires, etc.)
Qui plus est, les fautes ont souvent la facheuses tendance a rebuter d'eventuels lecteurs/correcteurs de bonne volonte.

Etre gratuit et disponible pour tous est-il synonyme de non-anticipation et de mauvaise gestion des erreurs ? ;)
Oui oui je sais mais dis toi que cette version n'est vraiment qu'un début (v0.3.6 je le rapelle), tout ça est prévu.

Plus economique (en terme d'efforts) et plus sur de partir sur de bonnes base des le debut - tant que l'on est conscient de ce que l'on souhaite faire - plutot de remettre ce genre de probleme a plus tard. ;)

tout ça est prévu

Une todo-list est-elle disponible quelque part ? Il serait interessant pour les personnes qui utilisent deja ItsEasy de pouvoir se faire une idee sur les problemes qu'il est prevu de resoudre et les innovations qui devraient etre apportees. ;)

Messages: 105
Inscription: Sam Mai 29, 2004 2:12 pm
Localisation: Paris
Gestion defficiente des fichiersMessagePosté: Dim Aoû 22, 2004 9:05 pm

Excusez-moi pour cet interlude bref et non productif...

MAIS :evil:

Retourner vers Développement technique d'Itseasy



Chercher un sujet :


cron