Encore une, du style : « Si vous avez le droit de vous connecter à l’admin de Dotclear et si vous avez le droit de déposer des fichiers, et si ce fichier est un fichier potentiellement critique (genre code javascript ou autre) et que si vous l’affichez ensuite côté public alors… ».
Alors oui, j’ai patché la-dite faille qui sera donc corrigée dans la prochaine 2.14.2, mais c’est un tonneau des Danaïdes ce truc, vu qu’on peut à peu près faire n’importe quoi de mauvais dans une installation Dotclear dès lors que vous avez la possibilité de vous connecter et les droits potentiels pour fiche le bordayle !
Donc on peut bien filtrer à l’envi tout ce qui passe, ça n’empêche que le problème principal est entre la chaise et le clavier : empêcher un malotru de s’inviter dans votre admin, en ne diffusant pas vos infos de connexion, et/ou en (s’)informant suffisamment sur les fichiers qu’on dépose dans la médiathèque pour les utiliser ensuite sont des moyens plus efficaces que tout le code que je pourrais mettre pour filtrer des trucs !
En particulier au sujet des extensions de fichier, vu qu’en fait on est libre de mettre un peu ce qu’on veut et s’il me vient l’envie de nommer mon virus javascript evil.jpg, rien ne m’en empêche, le tout est de trouver le moyen ensuite de le faire exécuter côté public !
Bref, l’info importante est que je vais publier une 2.14.2 dans les jours qui viennent ;-)
PS : Je vais commencer à jour avec ES6 pour la prochaine 2.15, ça a l’air rigolo ce qu’on peut faire avec et ça rend le code (un peu) plus lisible et robuste.
1 De Bernard -
Une des “précautions” prises par divers scripts/interfaces… est la possibilité de définir une option d’information quand quelqu’un se connecte à l’administration d’un compte - par mail et/ou affichage dans l’admin.
Par mail ça donne, par ex : “x s’est connecté à compte, le …, à heure”.
Dans l’admin: “dernière connexion x le …, à heure”.
Option permettant une ou les deux possibilités, car l’envoi de mail peut, amha, générer le besoin de ressources que tous n’ont peut être pas - surtout en cas de gestion multiblog et que toute connexion active l’envoi d’un mel au superadmin…
Certains (comme Facebook), mémorisent la connexion (IP, navigateur, localisation…) et demandent confirmation dans l’interface d’admin si IP, navigateur, localisation ne correspondent pas aux connexions “habituelles”; mais, là on est dans le domaine de serveurs “maouse costauds” et la gestion de compte individuels.
Dans tous les cas, une option d’info dans les interfaces d’admin sur les dernières connexions peut s’avérer intéressante pour la gestion de son compte - même si le malotru peut arriver à supprimer cette info…
Quant à ce qui concerne les comportements des utilisateurs, il y a des choses impossibles à contrôler; pour exemple j’ai déjà eu l’occasion, voici de nombreuses années, de constater qu’un espace accessible public comportait un fichier txt indiquant les informations de connexion (login et mdp)
2 De Franck -
Effectivement Bernard, un système permettant de tracer les activités serait intéressant, d’ailleurs j’ai commencé à développer un plugin pour faire ça, mais il est (encore) sur l’établi, comme plein d’autres trucs d’ailleurs :-)
Sinon, question authentification, je finirai bien un jour par améliorer ça en ajoutant un système à deux facteurs (2FA) par exemple.
3 De Llu -
Je trouve ça assez rassurant ceci dit de voir qu’ils ne trouvent que des failles de sécurité mineures et c’est chouette d’avoir des retours sur le sujet.
4 De Franck -
Oui tout à fait, ça fait déjà quelques mois, voire années, qu’on a rien eu de sérieux côté sécurité et c’est cool !
5 De Franck -
À ce sujet un tableau intéressant qui liste les failles ayant reçu un numéro de CVE, toute version de Dotclear confondues (de la 1.2 à la dernière).
28 seulement, pour une appli qui tourne et évolue depuis 15 ans, spa mal je trouve !
6 De Tomek -
Grave !