Détection d'une installation spip depuis config/connect.php
Description du bug / Comment le reproduire
Voir aussi https://discuter.spip.net/t/interdire-lacces-a-ecrire-exec-install/191294
- Avoir un site spip qui stocke ses credentials dans un fichier
.envà la racine - Modifier le ficher
config/connect.phpet coder l'accès à la BDD sous la formespip_connect_db($_ENV['DB_HOST'], '', $_ENV['DB_USER'], $_ENV['DB_PASSWORD'], $_ENV['DB_NAME'], 'mysql', 'spip', '');(en lieu et place despip_connect_db('DB_HOST', '', 'DB_USER', 'DB_PASSWORD','DB_NAME', 'mysql', 'spip', '');) - Se rendre sur
ecrire/?exec=install&etape=4(ou toute autre url de la procédure d'installation) - La liste des plugins est affichée avec leur version
Comportement attendu
Un access denied
Piste de résolution
Résolution facile
Modifier la regex dans analyse_fichier_connection pour la rendre plus souple et accepter des variables issues de tableau php.
Résolution robuste
Les credentials dans un fichier, c'est un coup à se retrouver avec des secrets dans un repo public sur github... Il serait probablement plus safe de faire un mécanisme à base de .env puis de tester la validation de l'installation en essayant d'aller lire une table par exemple.
Informations techniques
- Version de SPIP : 4.3 4.4 5.0
- Version de PHP : 7.4 8
- Navigateur utilisé : brave, firefox nightly build