fr   gb


Arbor

Sécurité

Avertissement préalable : sans être une passoire à code malicieux, Arbor n'a cependant aucune vocation à être utilisé pour des sites contenant des données sensibles...

Merci néanmoins de signaler toute faille de sécurité réelle ou potentielle...

A propos de la sécurité des sites Web

Elle fait couler beaucoup d'encre et aligner beaucoup de bêtises, non pas quant à la réalité du risque (il est réel et élevé) mais quant aux conséquences d'une "attaque" et quant à la pertinence des solutions proposées en fonction du contexte. Les exigences et les moyens à mettre en oeuvre ne sont pas les mêmes pour le site d'une banque en ligne et un site perso du style "Ma collection de boîtes de camembert". Pour ce genre de contexte un code léger, facile à comprendre et à maintenir, rapide mais faiblement sécurisé sera toujours préférable à un code réellement sécurisé mais, par voie de conséquence, souvent lourdingue, assez hermétique voire franchement alambiqué et généralement plus lent à se charger et s'exécuter. Pour le premier contexte, il n'en va pas de même ! Pour l'immense majorité des sites Web, la voie de la raison est généralement au milieu... La prudence oui, la paranoïa non !

Quelques utilisations possibles d'Arbor qui peuvent poser question

(o) Peut-on passer à Arbor le nom d'un fichier de menu par GET ou POST en toute sécurité ? :

Oui, dans un document utilisant Arbor, il est tout à fait possible de fournir à Arbor un chemin de fichier de menu provenant d'un champ GET (par l'url) ou POST sans précaution particulière et sans que cela ouvre la porte aux petits malins.

La présence d'une commande PHP eval() dans le traitement du fichier de menu (voir le code) pourrait faire craindre que cette manière de faire entraîne une faille de sécurité (risque de remplacement du fichier de menu par un fichier contenant du code malicieux ou un chemin vers un fichier local sensible).

Ceci n'est pas un réel danger car...

1) un fichier ne provenant pas du même serveur que le document appelant ne sera pas chargé.
2) le code du fichier de menu est encapsulé dynamiquement par le script dans un array() avant d'être évalué et ne peut donc pas s'exécuter directement sur le serveur ni afficher son contenu dans le navigateur-client.

... et pour les paranoïaques, il est possible de passer l'équivalent d'un contenu de fichier dans une variable chaîne, en court-circuitant eval().

 

(o) Peut-on passer à Arbor le chemin d'un répertoire à explorer par GET ou POST en toute sécurité ? :

Non ! Du moins pas sans précaution.

A moins de contrôler et sécuriser le contenu du chemin dans votre document avant de le passer à Arbor pour l'afficher, il ne serait pas prudent de risquer de permettre d'afficher la structure de l'arborescence de votre serveur et tout son contenu au premier curieux venu, et si ce n'est qu'un "curieux" c'est un moindre mal. En conséquence, seuls les répertoires que vous avez prévus comme pouvant être affichés doivent pouvoir l'être. Il est donc préférable de coder ces chemins "en dur" dans le code PHP de vos pages.

A noter qu'Arbor ne permet en aucune manière de remonter dans la hiérarchie des répertoires parents du répertoire qui a été passé au script en tant que répertoire racine de l'arborescence.

 

 

Arbor Home

 

Home Accueil

Contact Chercher

Contact Contact

Site Plan Plan du site

Page top Haut de page

Valid XHTML 1.0 Strict