Une boutique PrestaShop piratée, c'est plus grave qu'un site vitrine : commandes clients, données bancaires, conformité PCI-DSS, réputation. L'attaquant vise l'argent. La réponse doit être chirurgicale et rapide.
Boutique en péril, données bancaires en jeu ? On intervient en urgence : nettoyage, sécurisation du paiement et remise en ligne, dès 150 € sans abonnement. Voir notre service de nettoyage PrestaShop.
Spécificités PrestaShop vs WordPress
| Aspect | WordPress | PrestaShop |
|---|---|---|
| Vecteur principal | Plugin nulled / mot de passe | Module tiers / thème / permissions fichiers |
| Backdoor fréquente | mu-plugins, functions.php |
override/, modules/, tools/smarty/compile |
| Données sensibles | Contenu, utilisateurs | Commandes, clients, CB (si stockées), adresses |
| Conformité | RGPD | RGPD + PCI-DSS (si CB stockées) |
| Nettoyage | Remplacement core | Remplacement core + override + modules + cache Smarty |
Premières minutes : protocole urgence e-commerce
1. Maintenance immédiate (vraie, pas front-office)
# .htaccess racine
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^VOTRE\.IP\.ICI$
RewriteRule ^(.*)$ /maintenance.html [R=302,L]
Page maintenance.html : "Maintenance technique programmée. Vos commandes sont en sécurité. Retour sous peu." Pas de mention "piratage".
2. Changez TOUS les accès (ordre critique) :
- Base de données : nouveau user + pass → maj
app/config/parameters.php - Back-office : tous les employés admin + nouveau mot de passe (20+ car)
- FTP/SFTP : nouveau pass + clés SSH
- Hébergement / serveur : pass + 2FA
- API paiement (Stripe, PayPal, Paybox, etc.) : révoquez les clés API, régénérez, mettez à jour dans le back-office
- Webhooks paiement : vérifiez les URLs, régénérez les secrets
- Cloudflare / CDN / WAF : token, règles, purge cache
3. Informez votre banque / PSP (si paiement direct) : signalez l'incident, demandez surveillance transactions suspectes.
Diagnostic : vecteurs PrestaShop
Outils (dans l'ordre) :
grep -r "eval\|base64_decode\|gzinflate\|str_rot13\|create_function\|assert\|system\|exec\|shell_exec" . --include="*.php" --include="*.tpl" --include="*.js"find . -name "*.php" -mtime -7 -type f(modifiés 7 jours)find . -name "*.tpl" -mtime -7 -type f(templates modifiés)ls -la override/classes/ override/controllers/ modules/*/override/(fichiers override suspects)ls -la tools/smarty/compile/ cache/(fichiers compilés suspects)- Back-office > Paramètres avancés > Performances : "Forcer la compilation" doit être NON en prod
- Base de données :
ps_employee: employés admin inconnusps_configuration:PS_SHOP_DOMAIN,PS_SHOP_DOMAIN_SSL,PS_SSL_ENABLEDps_module: modules non installés mais présents dansmodules/ps_hook_module: hooks suspects
- Vérifiez
modules/: dossiers non officiels, fichiers.phpà la racine du module tools/smarty/compile/: vider complètement (cache Smarty = vecteur #1 réinfection)
Vecteurs PrestaShop les plus vus (nos stats) :
- Module tiers abandonné / nulled : 41 %
- Permissions fichiers trop larges (777 sur
cache/,img/,modules/) : 24 % - Thème / override compromis : 18 %
- Vulnérabilité core non patchée (1.6 / 1.7) : 12 %
- Accès FTP/SSH compromis : 5 %
Nettoyage PrestaShop : méthode par couches
Couche 1 : Core PrestaShop
- Sauvegarde BD complète (
mysqldump) - Identifiez version exacte :
cat config/defines.inc.php | grep _PS_VERSION_ - Téléchargez archive officielle même version (prestashop.com/download)
- Remplacez :
admin/,classes/,controllers/,src/,vendor/,app/,index.php,init.php,config/defines.inc.php(gardez vos params DB),.htaccess(gardez vos règles perso) - Ne touchez pas :
app/config/parameters.php,img/,download/,mails/,themes/votre-theme/(sauf si compromis),modules/(voir couche 2),override/(voir couche 3)
Couche 2 : Modules
- Listez modules installés : Back-office > Modules > Gestionnaire de modules
- Pour chaque module officiel : désinstallez, supprimez dossier
modules/nom-module/, réinstallez depuis source officielle (même version) - Pour chaque module tiers :
- Source officielle dispo ? → même processus
- Module nulled / abandonné / sans source → supprimez, remplacez par équivalent officiel
- Module custom (développé pour vous) : audit code complet, recréez propre si doute
- Videz
tools/smarty/compile/etcache/etvar/cache/(PrestaShop 1.7+)
Couche 3 : Override & Thème
override/classes/etoverride/controllers/: supprimez tout, recréez seulement vos overrides légitimes (vérifiez chaque fichier)- Thème : si thème acheté (ThemeForest, PrestaShop Addons) → réinstallez version propre. Si thème custom → audit chaque
.tpl,.php,.js,.css. Cherchezeval,base64,include,require,$_GET,$_POSTnon sanitizés. - Vérifiez
themes/votre-theme/templates/: pas de.php, que des.tpl
Couche 4 : Base de données
ps_employee: gardez seulement vrais employés, nouveau mot de passe bcrypt pour tousps_configuration:PS_SHOP_DOMAIN,PS_SHOP_DOMAIN_SSL(vos domaines),PS_SSL_ENABLED=1,PS_SSL_ENABLED_EVERYWHERE=1ps_customer: vérifiez pas de comptes admin créés par attaquant (rôle = 1 dansps_customer_group)- Nettoyez
ps_connections(logs connexions),ps_guest(paniers abandonnés > 30 j) - Cherchez injections :
SELECT * FROM ps_cms_lang WHERE content LIKE '%<script>%' OR content LIKE '%eval(%' OR content LIKE '%base64%';(pareil pourps_product_lang,ps_category_lang,ps_cms_category_lang)
Couche 5 : Fichiers statiques & uploads
img/: cherchez.php,.phtml,.htaccess→ supprimezdownload/: même chosemails/: vérifiez pas de fichiers ajoutéstools/smarty/compile/vider entièrementcache/vider entièrementvar/cache/(PS 1.7+) vider entièrementvar/logs/: archivez puis videz (garde trace pour analyse)
Remise en ligne + validation e-commerce
app/config/parameters.php: nouveaux identifiants DB, nouvelle clécookie_key(générez 56 car aléatoires)- Videz tous les caches :
cache/,var/cache/,tools/smarty/compile/, CDN (Cloudflare Purge Everything), Varnish/Redis si utilisé - Back-office > Performances : "Forcer la compilation" = NON, "Cache" = OUI, "CCC" (CSS/JS/HTML) = OUI
- Tests critiques :
- Home, catégorie, produit, panier, tunnel commande (étape par étape)
- Paiement : commande test Stripe/PayPal/Paybox → vérifiez webhook reçu, statut commande OK
- Emails : commande, inscription, mot de passe oublié, contact → reçus
- HTTPS : certificat valide, HSTS, pas de contenu mixte (DevTools > Security)
-
robots.txt,sitemap.xmlpropres - Search Console : soumettre sitemap, inspection URL 10 pages
- Demandez révision Search Console si alerte "site piraté"
Durcissement PrestaShop (spécifique)
- Permissions fichiers :
find . -type f -exec chmod 644 {} \;;find . -type d -exec chmod 755 {} \;;chmod 775 -R img/ cache/ download/ mails/ tools/smarty/compile/ var/cache/ var/logs/(selon config serveur) - Admin : URL personnalisée (pas
/admin), IP whitelist si IP fixe, 2FA (module Google Authenticator natif PS 1.7+) - Mises à jour : Security Patch appliqué sous 24 h (module 1-Click Upgrade ou manuel)
- Permissions modules :
chmod 644sur tous.phpmodules,755dossiers - WAF : Cloudflare (règles OWASP + rate limiting
/admin+ blocage pays à risque) - Sauvegardes : BD quotidienne externalisée + fichiers hebdo + test restauration mensuel
- Monitoring : uptime + intégrité fichiers (script quotidien
find /chemin/boutique -name "*.php" -mtime -1+ alerte email) - PCI-DSS : si CB stockées → audit annuel, scans trimestriels ASV, segmentation réseau
Cas spécifiques PrestaShop
Skimmer paiement (Magecart-like) :
Code JS injecté dans checkout.tpl ou payment.tpl ou via module tiers → vole numéros CB. Cherchez dans : themes/votre-theme/templates/checkout/, modules/*/views/templates/hook/, override/controllers/front/PaymentModule.php. Vérifiez aussi Google Tag Manager / GTM si utilisé (injecteur tiers).
Back-office inaccessible :
Via FTP : renommez modules/ → modules_off/ → accédez au BO. Réactivez modules un par un.
Via BD : UPDATE ps_employee SET passwd = '$2y$10$...' WHERE email = 'votre@email.com'; (hash bcrypt généré via php -r "echo password_hash('nouveau_mdp', PASSWORD_BCRYPT);")
Redirection vers spam :
Cherchez dans : index.php racine, .htaccess, config/defines.inc.php, override/classes/controller/FrontController.php, modules/*/nom_module.php (fonction hookHeader ou hookDisplayHeader).
Alerte hébergeur / suspension :
Demandez liste fichiers détectés. Nettoyez en local, renvoyez propre, demandez réactivation.
Conformité post-incident (RGPD + PCI-DSS)
- RGPD : Notifiez CNIL sous 72 h si données clients compromises (nom, email, adresse, historique commandes). Modèle notification sur cnil.fr.
- PCI-DSS : Si CB stockées/transitées → notifiez votre acquéreur/bank, demandez scan ASV, réévaluez votre niveau de conformité (SAQ A-EP ou D).
- Clients : Email transparent : ce qui s'est passé, quelles données, quoi faire (changer mdp, surveiller CB). Modèle sur cnil.fr.
Coûts & délais (notre grille PrestaShop)
| Niveau | Temps | Coût HT | Inclus |
|---|---|---|---|
| Simple (1 module compromis) | 4-6 h | 350 € | Nettoyage + durcissement + test paiement |
| Moyen (override + module + skimmer) | 8-12 h | 650 € | + audit modules + test tunnel complet |
| Complexe (BD + skimmer + multiples backdoors) | 16-24 h | 1 200 € | + conformité PCI-DSS + scan ASV + rapport CNIL |
Notre intervention : diagnostic sous 2 h, remise en ligne jour même si possible, test tunnel commande complet, monitoring 3 mois. Urgence PrestaShop.
Une fois le nettoyage terminé, demandez un audit gratuit de votre site pour vérifier que la sécurité, la performance et le référencement sont intactes. Sans engagement, sous 24 h.
Votre boutique est compromise ? On intervient aujourd'hui. Diagnostic sous 2 h, nettoyage, test tunnel paiement, remise en ligne. Urgence PrestaShop — 06 02 55 17 36.

