MaxTopForums
Accueil
Mon compte

5 derniers posts

 Mod Yellowcard sur 1.0.2
 Modification menu
 Comment centrer les images avatars
 Problème de gestion des smilies

Top 5 posteurs

   epsylon 
  
 399 messages

   guitscorps 
  
 62 messages

   Philippe 
  
 38 messages

   Toumilovitch 
  
 34 messages

   teeshot 
  
 29 messages

sponsor
servage
annonceurs
VOXUP™
bbtomax :: Sujet - Securité - function include

Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujet   Répondre au sujet
Auteur Message
zorteil
Citoyen BBtoMax



Inscrit le: Sep 11, 2006
Messages: 6
Localisation: fr

MessagePosté le: Lun Sep 11, 2006 9:32 pm Répondre en citant Revenir en haut

bonjour à tous. mes débuts sur ce site.
je regardais le tuto sur l'intégration de mod phpBB dans BBtomax avec des remplacements à faire du genre:
if (file_exists('path/nom_fich.php')) include_once('path/nom_ficch.php');

je ne sais pas comment s'est faite l'intégration de BBtoMax dans maximus; par contre en travaillant sur le fichier mainfile.php j'ai découvert une particularité de la fonction include() qui semble méconnue et qui est potentiellement dangereuse.

include() cherche le fichier là où on lui dit qu'il est et si elle ne le trouve pas
1) elle n'interrompt pas l'exécution du script, ce qui peut être génant, voir dangereux car il peut se passer des choses incontrôlables
2) pire, recherche le fichier à la racine du site et l'inclue si elle le trouve.

hors pagestart.php de phpBB pour maximus (ou startpage je ne sais plus trop) gère mal les chemins d'accès à mainfile.php et config.php.

Il en résulte que ne trouvant pas mainfile.php là ou il devrait être, include remonte à la racine du répertoire, y trouve mainfile.php et l'inclue.

donc si un attaquant réussit à placer là où include le cherche un fichier mainfile.php c'est un terrible désastre de plus invisible. voir mes posts "jeu hilarant" sur le site officiel de maximus.

soit remplacer include() par require() qui arrêterait l'exécution du script en cas d'erreur de path (à voir, on le lit partout mai j'ai des doutes au vu des tests que j'ai faits)

soit et ça me paraît préférable on complète le if(file_exists) avec un else die("message d'erreur"); si le fichier est indispensable

mais comme certains fichiers peuvent être manquants (des fichiers custom ou de cron) la meilleure des sécurités est de bien vérifier le path quand on utilise include ou require. pour ma part pendant la phase de développement j'utilise systématiquement le else die("message d'erreur") pour tous les includes sans exception et je pousse le vice jusqu'à rentrer un nom de fichier faux pour tester que le else s'exécute bien. ensuite enlever les else qui sont inutiles.

je suis de plus en plus convaincu qu'hormis des fichiers d'entrée de site comme index.php admin.php qui peuvent inclure en remontant des répertoires, tous les autres fichiers étant eux même inclus ne devraient inclure que des fichiers de même niveau ou de répertoires enfants.

et si on veut assurer la portabilité et se mettre à l'abri des erreurs de path qu'on a oublié de corriger après une modif
utiliser le code:
Code:

$the_include = dirname(__FILE__);
file_exists("".$the_include.'/mysql.php') OR die('fichier introuvable : mysql.php ');
        include("".$the_include."/mysql.php");


tant pis si c'est plus coûteux en ressource serveur.
Voir le profil de l'utilisateur Envoyer un message privé
epsylon
Team BBtoMax
Team Maximus Canada


Inscrit le:
Messages: 399
Localisation: fr

MessagePosté le: Mar Sep 12, 2006 3:40 pm Répondre en citant Revenir en haut

salut Zorteil
si tu veux actualisé le tuto y a pas de soucis Smile

_________________
Pas de Copyrigth = Pas de support
securisation de BS: http://bbtomax.com/bbtomax_official_site_securite_maximus.html

http://bbtomax.com/
http://maximus-canada.com/
http://planete-parents.com/
http://world-underground.net/
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
zorteil
Citoyen BBtoMax



Inscrit le: Sep 11, 2006
Messages: 6
Localisation: fr

MessagePosté le: Jeu Sep 14, 2006 10:29 am Répondre en citant Revenir en haut

bonjour Epsylon
(en attendant un plus familier salut epsy) Wink
oui ça me plairait de faire des tutos sur ce genre d "philosophie"

c'es vrai que sur les sites spécialisés on trouve tout sur la syntaxe des fonctions mais aucun recul, donc on n'attire pas l'attention sur "les bonnes pratiques".

mais tu sais qu'en ce moment j'ai un gros boulot avec le nettoyage du code de maximus BS, après je voudrais bien bosser sur les champs personalisés dans Your_Account

après pourquoi des tutos .
Voir le profil de l'utilisateur Envoyer un message privé
epsylon
Team BBtoMax
Team Maximus Canada


Inscrit le:
Messages: 399
Localisation: fr

MessagePosté le: Jeu Sep 14, 2006 10:40 am Répondre en citant Revenir en haut

y a aucun soucis, tu fais comme tu le sens Smile

_________________
Pas de Copyrigth = Pas de support
securisation de BS: http://bbtomax.com/bbtomax_official_site_securite_maximus.html

http://bbtomax.com/
http://maximus-canada.com/
http://planete-parents.com/
http://world-underground.net/
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
zorteil
Citoyen BBtoMax



Inscrit le: Sep 11, 2006
Messages: 6
Localisation: fr

MessagePosté le: Jeu Sep 14, 2006 12:24 pm Répondre en citant Revenir en haut

bon là je sens les bonnes odeurs de la cuisine que je vais faire. Very Happy

ciao et bon appêtit
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:       
Poster un nouveau sujet   Répondre au sujet

Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by BBtoMax © 2006 BBtoMax forum du cms Maximus
Information : Page générée en 0.16843 secondes, Requetes SQL = 42
Joomla Template by Joomlashack modifié et adapté au CMS Maximus par Unitifree. Template réservé exclusivement pour BBtoMaX.
Tous les logos et marques sont des Propriétés respectives. Les commentaires sont la propriété respective de ceux qui les postent. © 2006-2007 BBtoMax.Com tous droits réservés

GoogleTap SG GoogleTap SG Maximus Site officiel Maximus Canada Maximus Italie Maximus Belgique planete parents partenaire officiel de bbtomax Anti Virus Kaspersky

antispam Référencement Internet Référencement gratuit

Tous droits réservés. PHP-MaXiMuS est un logiciel libre en version GNU/GPL license .
Copyright 2005 PHP-MaXiMuS .

[ Page générée en 0.3648 sec ] [ (PHP: 59% - SQL: 41%) ] [ Requêtes SQL: 56 ] [ 87 pages vues la dernière heure ]
 Top Max Cache Off Copyright Mentions légales PHP Maximus CMS