Le blog

Date : 1 février 2026
Catégorie : Sécurité
Boutique PrestaShop piratée : la procédure de nettoyage et remise en ligne

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) :

  1. grep -r "eval\|base64_decode\|gzinflate\|str_rot13\|create_function\|assert\|system\|exec\|shell_exec" . --include="*.php" --include="*.tpl" --include="*.js"
  2. find . -name "*.php" -mtime -7 -type f (modifiés 7 jours)
  3. find . -name "*.tpl" -mtime -7 -type f (templates modifiés)
  4. ls -la override/classes/ override/controllers/ modules/*/override/ (fichiers override suspects)
  5. ls -la tools/smarty/compile/ cache/ (fichiers compilés suspects)
  6. Back-office > Paramètres avancés > Performances : "Forcer la compilation" doit être NON en prod
  7. Base de données :
    • ps_employee : employés admin inconnus
    • ps_configuration : PS_SHOP_DOMAIN, PS_SHOP_DOMAIN_SSL, PS_SSL_ENABLED
    • ps_module : modules non installés mais présents dans modules/
    • ps_hook_module : hooks suspects
  8. Vérifiez modules/ : dossiers non officiels, fichiers .php à la racine du module
  9. 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

  1. Sauvegarde BD complète (mysqldump)
  2. Identifiez version exacte : cat config/defines.inc.php | grep _PS_VERSION_
  3. Téléchargez archive officielle même version (prestashop.com/download)
  4. 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)
  5. 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

  1. Listez modules installés : Back-office > Modules > Gestionnaire de modules
  2. Pour chaque module officiel : désinstallez, supprimez dossier modules/nom-module/, réinstallez depuis source officielle (même version)
  3. 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
  4. Videz tools/smarty/compile/ et cache/ et var/cache/ (PrestaShop 1.7+)

Couche 3 : Override & Thème

  1. override/classes/ et override/controllers/ : supprimez tout, recréez seulement vos overrides légitimes (vérifiez chaque fichier)
  2. Thème : si thème acheté (ThemeForest, PrestaShop Addons) → réinstallez version propre. Si thème custom → audit chaque .tpl, .php, .js, .css. Cherchez eval, base64, include, require, $_GET, $_POST non sanitizés.
  3. Vérifiez themes/votre-theme/templates/ : pas de .php, que des .tpl

Couche 4 : Base de données

  1. ps_employee : gardez seulement vrais employés, nouveau mot de passe bcrypt pour tous
  2. ps_configuration : PS_SHOP_DOMAIN, PS_SHOP_DOMAIN_SSL (vos domaines), PS_SSL_ENABLED=1, PS_SSL_ENABLED_EVERYWHERE=1
  3. ps_customer : vérifiez pas de comptes admin créés par attaquant (rôle = 1 dans ps_customer_group)
  4. Nettoyez ps_connections (logs connexions), ps_guest (paniers abandonnés > 30 j)
  5. Cherchez injections : SELECT * FROM ps_cms_lang WHERE content LIKE '%<script>%' OR content LIKE '%eval(%' OR content LIKE '%base64%'; (pareil pour ps_product_lang, ps_category_lang, ps_cms_category_lang)

Couche 5 : Fichiers statiques & uploads

  1. img/ : cherchez .php, .phtml, .htaccess → supprimez
  2. download/ : même chose
  3. mails/ : vérifiez pas de fichiers ajoutés
  4. tools/smarty/compile/ vider entièrement
  5. cache/ vider entièrement
  6. var/cache/ (PS 1.7+) vider entièrement
  7. var/logs/ : archivez puis videz (garde trace pour analyse)

Remise en ligne + validation e-commerce

  1. app/config/parameters.php : nouveaux identifiants DB, nouvelle clé cookie_key (générez 56 car aléatoires)
  2. Videz tous les caches : cache/, var/cache/, tools/smarty/compile/, CDN (Cloudflare Purge Everything), Varnish/Redis si utilisé
  3. Back-office > Performances : "Forcer la compilation" = NON, "Cache" = OUI, "CCC" (CSS/JS/HTML) = OUI
  4. 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.xml propres
    • Search Console : soumettre sitemap, inspection URL 10 pages
  5. 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 644 sur tous .php modules, 755 dossiers
  • 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.

Nicolas Pivaut
Rédigé par

Nicolas Pivaut

Fondateur & Développeur Web

Fondateur de WebSentinel, Nicolas accompagne les PME et artisans dans leur transformation digitale depuis 2015. Expert SEO, développement web et e-commerce.