en effet, spip est en 4.3.5, et tous les plugins sont à jour. Par contre, j’ai un (seul) fichier php dans les squelettes. je peux le virer pour voir…
Et quand tu dis « à jour », c’est aussi nettoyé (donc reparti de zéro), pas juste remettre les bons fichiers par-dessus les anciens, avec la possibilité qu’il y ait un fichier en plus du hackeur dans l’arborescence de ton site ?
Pour le fichier php dans squelettes, tout dépend de ce qu’il contient.
oui, j’ai refait une installation propre:
comme noté, j’aurais aussi pu reinstaller tous les plugins un par un , mais je le ferais peut etre en dernier recours.
apres, je ne suis pas un néophyte, ca fait 15 ans que je suis webdev en freelance, mais c’est le seul site spip que je gere, repris pour un client, donc expert php++, mais spip pas vraiment
Bref, j’ai deja eu affaire à des sites hackés sur d’autre cms…
Est-ce que tu as analysé le site avec spip-contrib-outils / spip_cleaner · GitLab ?
Si tu as gardé les repertoires /IMG et /plugins tels quels, il peut y avoir des merdes dedans. J’en ai eu sur chaque site infecté que j’ai eu à traiter.
Pour /IMG
c’est facile, tu mets un /IMG/.htaccess valable pour différentes versions d’Apache / PHP (module ou FPM) :
<IfModule mod_php.c>
php_flag engine off
</IfModule>
<Files *.php>
deny from all
</Files>
Tu peux mettre le même dans /local
d’ailleurs, ça mange pas de pain.
Pour /plugins
, il vaudrait mieux les réinstaller complètement.
Voir, les installer en Git, comme ça tu peux faire un git status
pour voir si des fichiers ont été ajoutés / modifiés.
Il faut tout virer ou au moins tout analyser, sans quoi le hack peut-être présent aussi bien dans IMG que dans plugins, mes notes à ce sujet pour rappel Nettoyer un site SPIP piraté - Le labo
j’ai deja mis les .htaccess, fait les recherches base64, etc…
Contenu effacé par erreur, mais qui demandait s’il fallait alors faire le git status successivement pour chaque dossier git
j’ai retrouvé un fichier hacké dans img grace a spip cleaner… on croise les doigts pour que ca solve le souci
Tu évoquais cela déjà il y a plus d’un an et cela avait donné ce ticket Bloquer php dans certains répertoires (#5632) · Tickets · spip / spip · GitLab
Merci du déterrage, j’avais complètement oublié.
Et oui, c’est quelque chose que je fais systématiquement, ça pourrait être intégré nativement, comme d’autres htaccess qui sont générés (dans /config et dans /tmp).
Oui bien sûr.
Mais tu peux lancer une commande globale avec une boucle sur les répertoires, l’astuce étant d’utiliser le paramètre -C
de la commande git
, qui permet de spécifier le répertoire dans lequel travailler.
Quelque chose comme ça :
find . -mindepth 1 -maxdepth 1 -type d -print -exec git -C {} status \;
Marche aussi pour git pull
etc.
Mieux : on peut créer des commandes git sous forme de scripts (bash par exemple).
Pour ça, il faut les nommer git-macommande
et que ces fichiers soient dans le PATH.
Par exemple, j’ai un fichier git-all
dans mon ~/bin, qui contient :
#!/bin/bash
set -euo pipefail
# Applique une commande git sur tous les sous dossier (repos)
# ex : `git all fetch --all`
root=$PWD;
for i in $(ls -R -d */.git); do
repo=$(echo "$i" | sed 's,\/.git,,');
cd $root/$repo;
branch=$(git branch --show-current);
echo -e "\e[1;42;1;37m $repo \e[0m branch \e[1;33m$branch\e[0m"
git $@;
printf "\n";
done
et dans un dossier qui contient lui même des dossiers versionnés (plugins sous git) je peux lancer git all status
par exemple.
Ça me liste tous les dossiers/dépôts, avec la branche dans laquelle ils sont, dans une sortie couleur bien lisible.
Très pratique
Super.
Dans le genre, j’utilise « git info »
Ah oui, pas mal, mais ça dumpe vraiment beaucoup d’info… Un peu trop en fait