Nettoyer un site piraté soi-même ou déléguer : comment décider
Si vous savez comparer des fichiers à leur version d’origine et lire un journal, un nettoyage manuel est possible. Sinon, le risque est de retirer les symptômes — home propre, backdoor encore là — et de recommencer. Voici un arbre de décision, pas un jugement sur votre débrouillardise.
Si vous savez comparer des fichiers à leur version d'origine et lire un journal, un nettoyage manuel est possible. Sinon, le risque est de retirer les symptômes.
La question n’est pas le courage
Nettoyer un site piraté soi-même n’est pas une affaire de fierté. C’est une affaire d’outils mentaux : différencier un `functions.php` légitime d’une ligne ajoutée, ne pas jeter un fichier CMS parce qu’un scanner a crié, suivre une date. Beaucoup de développeurs le font bien. Beaucoup de bons commerçants s’y cassent, et ce n’est pas un défaut.
Le critère simple : si vous hésitez entre « je supprime ce PHP » et « je ne sais pas à quoi il sert », arrêtez-vous. Isoler n’est pas supprimer. Déléguer n’est pas avouer. C’est choisir l’horloge 1 courte plutôt que l’horloge 1 × 3.
Lisez la suite comme un arbre. Un « non » n’interdit pas d’apprendre. Il interdit d’apprendre sur le site de production un dimanche, sans copie.
- Copie hors serveur déjà faite ? Sinon, personne ne commence — ni vous, ni nous.
- Vous lisez du PHP assez pour un grep `eval` / `base64` ?
- Vous avez déjà restauré un cœur WP depuis le zip sans paniquer ?
- Boutique ou fuite possible → biais vers déléguer.
Savez-vous faire un diff avec le zip officiel ?
Télécharger WordPress / l’extension / le thème parent, comparer. C’est 70 % d’un nettoyage vitrine. Si l’idée d’un diff (WinMerge, `diff -r`, l’outil de l’hébergeur) vous est étrangère, le FTP au jugé va casser plus que le pirate. Ne pas supprimer au hasard.
Thème enfant, mu-plugins, uploads : pas de zip officiel. Là il faut lire. Si vous ne lisez pas, vous avez besoin de quelqu’un qui lit, pas d’un scanner.
Réinstaller le cœur depuis le panel sans diff : geste possible en complément, pas à la place de uploads et de la base. Voir réinstaller WordPress.
Savez-vous lire une ligne de log et un cron ?
Le journal dit le fichier. Le cron dit ce qui revient à H+5. Sans ces deux lectures, vous jouez à Whac-A-Mole. Avec, un dossier « mystérieux » devient un chemin. C’est apprenable en une heure — pas au moment où Chrome est rouge et le gérant au téléphone.
Si SSH / les logs vous sont fermés, vous pouvez encore DIY sur les fichiers, plus aveugle. Demandez les logs à l’hébergeur (ticket factuel). Un DIY sans logs sur une 500, c’est de la divination.
Base (`wp_options` autoload, utilisateurs) : troisième compétence. Injection JS en option, aucun fichier sale. Les scanners de fichiers sont verts. Vous, tout seul, concluez « c’est bon ». Les visiteurs, non.
Vitrine, boutique, ou données clients
Vitrine brochure, pas de compte client, pas de paiement : le coût d’une erreur DIY est surtout du temps et une réinfection. Encore réel, rarement une CNIL. Boutique, formulaires de leads, espace adhérents : le coût d’une erreur est une table lue ou un skimmer laissé. Biais fort vers quelqu’un qui a déjà ouvert ces tables.
PrestaShop / Woo : pages métier — employés, modules, checkout. Ce n’est pas « WordPress en plus gros ». C’est un autre arbre.
Si vous ne savez pas si une fuite est possible, ce n’est pas un DIY de plus : c’est un constat à faire faire. Vous décidez ensuite de la notification. Le prestataire n’est pas votre DPO.
Ce que le DIY rate le plus souvent
Le mu-plugin, le prepend `.user.ini`, le voisin `old/`, l’Application Password, le cron, l’option en base, le second admin, la clé SSH. La home, elle, est propre. C’est le motif du second appel. Pas parce que les gens sont nuls. Parce que le symptôme est là où on clique.
Le restore « dernière save » sans ouvrir. Le plugin « repair all ». Le chmod 777. La réinstall par-dessus. Quatre classiques, documentés dans les autres articles de ce lot. Les faire soi-même n’est pas plus sage que de les faire faire à un plugin.
Le suivi 30 jours : personne ne le fait vraiment tout seul après avoir « fini ». Un calendrier (J+1, J+3, J+7, dates de fichiers, `site:`) est le minimum DIY sérieux.
Cinq critères pour déléguer tout de suite
1) Phishing, exe, skimmer, rançon active. 2) Compte suspendu et archive à extraire. 3) Plus d’accès FTP/admin et prestataire introuvable. 4) Plusieurs sites sur le compte. 5) Vous avez déjà « nettoyé » une fois et ça a recommencé. Un seul de ces cinq : le ROI du prestataire est évident. Les cinq : n’ouvrez plus FileZilla pour « encore un fichier ».
Critère bonus : vous n’avez pas trois heures calmes. Un nettoyage interrompu toutes les dix minutes par le téléphone, c’est ainsi qu’on laisse le prepend.
Si aucun critère, que le diff ne vous fait pas peur, et que c’est une vitrine : DIY possible. Suivez l’ordre premiers gestes, pas un tuto « 5 plugins to remove malware ».
L’hybride : vous figez, quelqu’un compare
Même délégué, vous êtes utile J0 : captures, copie, panel, ticket, tests visiteurs. Ça ne casse rien, ça raccourcit le dossier, ça réduit la facture. Ne « commencez pas le nettoyage pour avancer » si vous allez déléguer dans l’après-midi : vous déplacez les dates et vous cassez parfois le thème.
L’hybride inverse (prestataire pour l’entrée, vous pour le contenu) marche si les rôles sont écrits. L’hybride flou (deux personnes qui delete dans le FTP) est un incident dans l’incident.
Créer un espace sans fournir l’accès tout de suite : vous pouvez figer d’abord, envoyer ensuite. C’est un hybride propre.
Prix du prestataire vs prix du deuxième incident
Un forfait vitrine se compare à une journée de votre temps + le risque d’un J+8. Combien ça coûte : le moins-disant scanner est plus cher que le forfait complet si vous le payez deux fois. Le DIY « réussi » est le moins cher. Le DIY « presque » est le plus cher.
Demandez un écrit, des accès révocables, le périmètre (un site / le compte), le suivi. Si on vous promet « Google comme avant vendredi » et « 79 € tout compris boutique », continuez à chercher.
Décider ce soir : arbre ci-dessus, une page. Pas un comité. Chaque heure sur un phishing en 200 vaut plus que la nuance DIY.