Un problème technique

Samedi 6 février 2021, par BERTRAND Joël // Pourquoi ici ?

Le code de SPIP est devenu, quoi qu’en disent ses concepteurs, une horreur innommable. Outre les effets de bord que l’on trouve un peu partout, qui ne sont pas documentés et auxquels il faut prendre garde lorsque l’on tente des développements, il y a dans sa syntaxe des tas de subtilités pour ne pas dire de bogues transformés en fonctionnalités que personne n’est capable d’expliquer simplement. Un grand classique du genre est la curieuse interaction entre les boucles et les syntaxes à crochet imbriquées dans les mêmes fichiers. Cette dernière subtilité est même tellement grande que le plugin Fabrique m’a, pas plus tard que ce matin, généré une architecture de plugin faisant planter l’espace privé d’un site qui n’était heureusement pas public parce que l’un des objets éditoriaux nouvellement créé avait un lien direct sur un article.

Si encore il existait une documentation à jour et réellement exhaustive, ce serait un moindre mal. Mais très souvent, trop souvent, il faut savoir lire entre les lignes de plusieurs articles pour commencer à comprendre vaguement comment certains points obscurs fonctionnent. Certaines fonctionnalités sont sans doute très claires dans la tête des gens qui les ont implantées, mais c’est à peu près tout. Avec un peu de chance, il se trouve quelque part un exemple qui permet en tâtonnant de comprendre comment cela veut bien fonctionner. Pour ma part, j’ai conscience d’être un privilégié puisque j’ai quarante ans de programmation derrière moi, ce qui me permet, avec le peu de documentation parcellaire qui existe, de toujours arriver à finir par comprendre comment faire pour arriver à ses fins quitte à contorsionner outrageusement un algorithme pourtant simple, jouant des sessions, environnements et champs cachés. C’est loin d’être le cas de tous les utilisateurs.

Mais SPIP est aussi un trou de sécurité bouché par des rustines souvent ubuesques. Très peu de répertoires ont besoin d’être accessibles depuis le serveur web. Il est donc possible de sécuriser bien plus efficacement un site fonctionnant sous SPIP directement depuis la configuration du serveur web que depuis les scripts php eux-mêmes. Pour peu que le serveur web d’un site internet quelconque soit mal configuré ou que l’on connaisse la structure du squelette utilisé, il est possible d’obtenir des informations sensibles en tapant directement sur les fichiers du squelette qui sont alors affichés sans interprétation dans le navigateur internet.

Pour toutes ces raisons, ce site internet fonctionne avec la dernière version de développement de SPIP et une configuration très particulière du serveur web, ce qui permet à la fois de valider le fonctionnement du plugin Multiflex et les principes de sécurité évoqués plus haut et qui feront peut-être l’objet d’un article dans la documentation.