Boutiques · 13 min · publié le 11 avril 2025

PrestaShop piraté : l'ordre pour protéger commandes et paiements

Sur PrestaShop, l'urgence n'est pas la page d'accueil. C'est le tunnel de paiement, les employés, les modules, puis les commandes fantômes. On isole, on exporte, on nettoie sans jeter le catalogue. Voici l'ordre.

Réponse directe

Isolez le tunnel de paiement, contrôlez employés et modules, exportez les commandes fantômes, puis nettoyez sans perdre le catalogue. La home n'est pas l'urgence.

prestashop piraté prestashop hacked boutique prestashop malware

La home n'est pas le dossier

Un défacement se voit. Un skimmer, un employé créé à 3 h, un webhook PayPal tourné, non. Les boutiques que nous reprenons ont souvent déjà « remis le slider » deux fois. Le catalogue tourne, les cartes passent ailleurs. Partez du guide PrestaShop pour le cadre, et de cette page pour l'ordre opérationnel.

Constater : heure, URL de checkout, message client, ticket hébergeur. Copier le compte (fichiers + base) hors serveur. Changer le panel, puis le FTP, puis le back-office, puis les clés. Inverser laisse une session qui repose le module que vous venez de retirer. Premiers gestes.

Si une fausse page carte est en ligne, coupez cette URL tout de suite. Pour le reste, gardez la vitrine joignable tant que le paiement est isolé. Voir fermer la boutique ?.

Réinstaller PrestaShop « pour être sûr » détruit commandes, stocks, CMS et souvent les preuves. Ce n'est pas un premier geste.

Isoler le tunnel de paiement

Testez le checkout comme un client (privé, mobile). Notez l'URL finale de saisie carte. Si ce n'est pas votre PSP habituel, coupez ce module ou cette étape — pas toute la boutique. Quelques heures sans encaisser valent mieux que des transactions captées. Paiement redirigé et skimmer PrestaShop.

Désactivez les moyens de paiement suspects dans Paiement → Préférences / modules. Un bandeau « paiement temporairement indisponible » suffit souvent. Ne ne touchez pas encore aux commandes en cours : exportez-les.

Lisez le HTML de l'étape paiement. Un JS tiers inconnu, c'est un skimmer même si la redirection « a l'air » Stripe. Le 3-D Secure ne protège pas cette lecture — 3-D Secure.

  • URL de checkout et de saisie carte notées.
  • Modules paiement non reconnus : off.
  • HTML de l'étape relu.

Employés, profils et webservice keys

Administration → Employés : comptes que vous ne nommez pas, heures aberrantes, profils trop ouverts (un « Catalogue » avec accès modules et commandes). Exportez, puis désactivez ou supprimez. Un profil trop large suffit parfois sans nouvel employé. Détail : employé fantôme.

Paramètres avancés → Webservice : clés que vous ne pouvez pas relier à un ERP, une app mobile, un marketplace. Révoquez. Une clé survit au mot de passe back-office. Même logique que clés API Magento.

Forcez la déconnexion (régénérer le cookie admin, changer `_COOKIE_KEY_` seulement si vous savez recoller — sinon changez les mots de passe employés et videz les sessions en table `ps_employee_session` selon version, après copie).

Modules de paiement et de transport

Listez les modules, dates, sources (Addons officiel vs zip email). Un module de paiement ou de transport que personne n'a installé est une porte classique. Désactivez, inspectez le dossier `modules/nom`, cherchez des appels sortants, ne « mettez pas à jour » depuis l'archive douteuse. Module transport inconnu.

Les overrides (`override/`) et les copies dans le thème (`themes/.../modules/`) survivent à une désactivation. Comparez au zip officiel du module et du cœur (selon votre branche 1.7 / 8 / 9). Un override de `PaymentModule` ou du checkout est prioritaire.

Commandes et clients fantômes

Commandes à 0 €, emails jetables, adresses incohérentes, pics de création de comptes, statuts « paiement accepté » sans passage PSP. Exportez avant de supprimer : ils figurent au constat et datent l'accès. Ils servent parfois à tester que l'attaquant a la main, parfois à faire transiter du contenu.

Ne « remboursez pas tout » dans le vide. Les vraies commandes de la fenêtre restent des vraies commandes. Le tri se fait avec le PSP — Stripe, PayPal.

Données : ce que PrestaShop a vraiment

PrestaShop ne stocke en principe pas le PAN complet. Noms, emails, adresses, historiques, parfois IBAN ou tokens, oui. Un accès back-office ou une clé webservice lecture sur customers / orders est une lecture possible. Le constat technique dit si les tables ont été touchées ou exportées. C'est ce document qui sert à la CNIL, pas une impression. Fuite de données.

Ne publiez pas « aucune donnée client n'a fuité » le soir même. Un démenti trop tôt se retourne. La notification, si elle est due, vous incombe.

Nettoyer sans réinstaller « à neuf »

Comparez le cœur au zip officiel de votre version exacte, retirez les PHP hors arbre, alignez les modules Addons, conservez `img/`, le catalogue, les commandes. Une sauvegarde PrestaShop « last » contient souvent déjà le skimmer. On remonte jusqu'à un point relu, on ne restore pas par réflexe.

Les tables `ps_configuration` (URLs, emails, parfois extra HTML), `ps_hook` / `ps_hook_module`, et les contenus CMS : grep `<script` et des domaines inconnus. Même famille que les options WordPress, autre schéma.

Thème, override et JavaScript de checkout

Le thème enfant / le theme child PrestaShop et `themes/votre-theme/assets/js` portent trop souvent le skimmer. Comparez à l'archive du thème. Un `custom.js` de 2024 avec trois lignes ajoutées en bas : lisez-les. Videz les caches PrestaShop + CDN après. Sans ça, le HTML sale est encore servi.

Les webhooks modules (Stripe officiel vs zip nulled) : vérifiez les URLs chez le prestataire. Module Stripe officiel vs nulled et webhooks.

Informer, ou pas, puis surveiller

Pas d'accès données ni de paiement détourné établi : une com large crée de la panique. Risque cartes : clients concernés, banque / PSP, fenêtre de dates. Que dire aux clients, informer la banque.

Surveillez employés et modules 30 jours. Relisez le HTML checkout à J+2 et J+7. Pour un constat et un nettoyage sans perdre le catalogue, déclarez la boutique — le prix s'affiche avant l'accès. La page service : PrestaShop piraté.

  • Paiement isolé, vitrine utile.
  • Employés et clés webservice relus.
  • Modules inconnus désactivés, dossiers lus.
  • PSP informé si le HTML checkout était sale.

Questions fréquentes

Faut-il mettre toute la boutique hors ligne ?

+
Si le checkout est douteux, coupez le paiement. Fermer le catalogue n'aide que si du phishing ou un rançongiciel tourne sur toutes les URL. Une 503 globale coûte du SEO sans raccourcir l'analyse modules.

On est en 1.6 / 1.7 obsolète. On met à jour d'abord ?

+
Non. Mettre à jour un site encore infecté casse l'affichage et laisse la porte. Nettoyez, refermez, puis planifiez la montée de version. Voir aussi PrestaShop obsolète.

Le module officiel Stripe est à jour. On est protégés ?

+
Le module à jour réduit une faille connue. Il ne retire pas un JS dans le thème ni un employé fantôme. Le HTML du checkout décide, pas le numéro de version seul.

Une sauvegarde PrestaShop d'hier suffit-elle ?

+
Si l'entrée datait d'avant-hier, vous restaurez le skimmer. Ouvrez l'archive, comparez, ne restorez pas « last » par réflexe.

Qui prévient la CNIL ?

+
Vous, responsable de traitement, si une violation présentant un risque est établie. Nous fournissons le constat technique, pas la déclaration à votre place.
À lire ensuite
Guide PrestaShop piraté Sécuriser une boutique PrestaShop Skimmer PrestaShop Employé fantôme Fuite de données Déclarer mon site