Sans développeur PHP, commencez par récupérer les accès, tester les sauvegardes et identifier PHP. Choisissez ensuite un PHP corrigé, une migration ou une archive statique pour traiter PHP2Shell.
01
Récupérer accès et responsabilité
Retrouver registrar, hébergement, serveur/panneau, code, accès DB et facturation. Désigner qui valide la maintenance et restaure le service. Identifier application et version par les fichiers locaux. Récupérer les accès ou sources manquants avant de changer PHP en production.
02
Préserver les preuves et restaurer une sauvegarde
Si intrusion suspectée, conserver les journaux avant nettoyage. Sauvegarder code, DB, médias, configuration et tâches en un ensemble daté, chiffré et protégé. Noter encodage et stockage externe. Restaurer en privé puis tester contenus et connexion; le message de sauvegarde ne suffit pas.
Un patch n’exclut pas une compromission ↗03
Comparer chaque génération PHP
PHP 5.3/5.6 peut utiliser des API supprimées. PHP 7 retire ext/mysql; PHP 8 retire each()/create_function() et durcit types/signatures; PHP 8.2 déprécie les propriétés dynamiques. Lire chaque guide traversé. Un minimum historique ne recommande pas un PHP abandonné et ne teste pas les développements spécifiques.
04
Choisir réparation, migration ou archive
Un correctif fournisseur prouvé peut laisser du temps pour migrer; vérifier les deux CVE et le support. Un PHP abandonné exige une cible maintenue, pas une exception WAF permanente. Réparer une application maîtrisée, remplacer les dépendances abandonnées, envisager une archive statique pour les contenus et remplacer recherche, connexion et formulaires dynamiques.
05
Préparer un essai privé réaliste
Aligner PHP Web, extensions, INI, DB et routage avec la cible. Protéger les copies anonymisées et empêcher mails réels, paiements et webhooks de production. Tester ensemble framework, plugins et code spécifique. Consigner tests métier et journaux; demander ces preuves à l’hébergeur si nécessaire.
06
Prévoir le retour avec les écritures et schémas
Garder fichiers et DB cohérents. Revenir à PHP ne défait pas une migration de schéma. Prévoir gel des écritures ou synchronisation testée, critères d’échec, responsable et délai. Prendre en compte les commandes après sauvegarde et répéter restauration et rapprochement.
07
Vérifier les services réellement actifs
Contrôler PHP Web, tous les pools FPM, workers, tâches, conteneurs et répliques; remplacer les anciens processus. Prouver les deux correctifs CVE par version ou avis fournisseur. Tester liens profonds, connexion, médias et métier. Conserver journaux et fenêtre de retour; CLI et accueil ne suffisent pas.
Vérifier les correctifs PHP2Shell ↗Tests métier après correction de PHP2Shell
Connexion, sessions et rôles
Tester connexion, déconnexion et réinitialisation avec un compte de test; vérifier sessions, administration et rôles.
Liens profonds et statuts HTTP
Ouvrir un lien profond, envoyer un formulaire et demander une page absente; comparer paramètres, redirections et statuts HTTP.
Lectures/écritures DB
Lire/écrire des données représentatives dans la copie; vérifier pilotes, SQL strict, transactions et restitution.
Modèles et échappement
Afficher articles, listes, comptes et erreurs; vérifier balises personnalisées, échappement, caches et avertissements.
Médias et miniatures
Téléverser une image inoffensive, lire la miniature puis supprimer; vérifier droits, chemins et URL en bloquant les fichiers exécutables.
Tâches nouvelles et existantes
Traiter une tâche nouvelle et existante avec le nouveau worker; vérifier sérialisation, reprises et absence de doublons.
Planification et chemins PHP
Vérifier le binaire PHP, INI et compte du planificateur; exécuter une tâche sans effet dans la copie et comparer après déploiement.
Caches froids/chauds et OPcache
Reconstruire les caches selon la documentation; tester à froid/chaud et supprimer anciennes données sérialisées et processus OPcache.
Courrier de test
Envoyer les mails vers un collecteur de test; vérifier modèles, files et transport sans contacter les clients.
Commandes, taxes et stock
Tester commande, livraison, taxes, remise et remboursement en sandbox; comparer totaux, stock et historique.
Paiements sandbox et notifications
Tester succès, échec et notification asynchrone de paiement; vérifier signature et idempotence pour éviter les doublons.
Index et filtres de recherche
Recréer un index de test; comparer recherches, filtres et droits sans déduire sa compatibilité du seul PHP.
Sites, domaines et langues
Tester chaque site, domaine et langue avec le bon rôle; vérifier cookies, URL et configuration locale.
GBK/UTF-8 et restitution
Faire transiter caractères spéciaux par formulaire, base et export; conserver GBK/UTF-8 avant conversion testée séparément.
Contrats API et callbacks
Tester API authentifiée ou non; comparer types JSON, erreurs, statuts et callbacks.
Extensions Web/CLI et ABI
Vérifier les extensions en Web et CLI avec ABI/NTS/ZTS corrects; tester pilotes et services.
Vérifier les correctifs PHP2Shell
Compatibilité applicative, maintenance et sécurité PHP sont distinctes. Choisissez une branche PHP maintenue corrigeant les deux CVE, puis vérifiez tous les processus Web, tâches planifiées et réplicas. Mettre à jour un plugin ne remplace pas PHP.
| Branche PHP | Versions amont inférieures à | Première version corrigée | Fin du support de sécurité |
|---|---|---|---|
| PHP 8.5 | < 8.5.12 | ✓ 8.5.12 | 31 déc. 2029 |
| PHP 8.4 | < 8.4.27 | ✓ 8.4.27 | 31 déc. 2028 |
| PHP 8.3 | < 8.3.36 | ✓ 8.3.36 | 31 déc. 2027 |
| PHP 8.2 | < 8.2.35 | ✓ 8.2.35 | 31 déc. 2026 |
Aucune publication PHP habituelle n’est prévue pour ces branches. Des rétroportages source minimaux existent pour 7.4, 8.0 et 8.1. Vérifiez séparément le support du fournisseur. Lire le guide ↗