Sécurité

Durcissement du serveur PrestaShop : fermer ce qui n’a pas à être ouvert

« Mon serveur a été installé une fois et plus personne ne l’a regardé depuis. » Si cette phrase est la vôtre, cette page décrit la mission correspondante — ce qu'elle couvre, ce qu'elle suppose de votre côté, et comment être mis en relation avec un spécialiste qui la traite.

Être recontacté par un consultant expert Prestashop

Gratuit, sans engagement — réponse rapide

Vos coordonnées ne servent qu'à cette mise en relation. En savoir plus.

Par exemple : ma-boutique.fr

E-mail ou téléphone : au moins l'un des deux.

Donner plus de contexte (formulaire détaillé)

Sécuriser le serveur d’une boutique PrestaShop consiste à fermer ce qui n’a pas à être ouvert : ports, services, comptes, droits d’écriture, dossier d’administration, en-têtes et versions sans correctif. Chaque point se vérifie par une question à l’hébergeur ou par un contrôle de l’extérieur. Sur un hébergement mutualisé, l’hébergeur tient la plupart des réglages : la mission devient alors un contrôle écrit plutôt qu’une intervention.

L’inventaire des ports, des services et des comptes ouvre le durcissement d’un serveur PrestaShop

La fiche 9 du guide de la CNIL (version 2024, mise à jour 2026) demande de désinstaller ou désactiver les services et interfaces inutiles. Elle demande aussi de limiter les outils d’administration aux personnes habilitées et d’utiliser des comptes sans privilèges pour les opérations courantes. La fiche 10 précise : quand l’accès à un serveur web passe uniquement par HTTPS, seuls les flux entrants sur le port 443 restent autorisés, les autres ports sont bloqués.

Trois questions écrites suffisent pour ouvrir le dossier :

  • Quels ports répondent vu de l’extérieur, et pourquoi chacun ?
  • Quels comptes existent (système, FTP ou SSH, c’est-à-dire l’accès distant aux fichiers et à la console, base de données, panneau de l’hébergeur), au nom de qui ?
  • Qui administre le serveur, par quel canal ?

Un scénario courant : le compte FTP créé pour un ancien prestataire reste actif, partagé entre trois personnes. La CNIL range les comptes génériques et une base de données directement accessible depuis Internet parmi ce qu’il ne faut pas faire.

Les droits d’écriture d’une boutique PrestaShop se limitent aux répertoires qui en ont besoin

La page d’installation en local (« localhost ») de la documentation développeur de PrestaShop 1.7 liste quinze répertoires où la boutique doit pouvoir écrire, dont cache, config, img, modules, themes, translations, upload et var. Elle déconseille, en production, de faire tourner Apache sous son propre utilisateur et demande de changer les droits dossier par dossier.

Le reste de l’arborescence n’a pas besoin d’être modifiable par le serveur web (déduction). Un scénario : un module vulnérable, sur un serveur qui écrit partout, peut réécrire un fichier du cœur.

La configuration d’exemple de la documentation pour Nginx va plus loin : elle refuse les fichiers .php dans /img et /upload, sous le commentaire « Prevent injection of PHP files ». Elle refuse aussi notamment les fichiers .log, .tpl, .twig et .yml. La page signale que cette configuration « may be incomplete » : adaptez-la, ne la copiez pas.

Le dossier d’administration de PrestaShop se protège par un mot de passe serveur et des adresses

Le guide de la version 1.6 demande de renommer le dossier /admin après l’installation. La documentation développeur de PrestaShop 9 ajoute d’y poser un fichier .htaccess ou .htpasswd, ce que le guide détaille : un mot de passe demandé par le serveur avant même la page de connexion, avec une restriction possible par domaine ou par adresse IP. Le fichier .htpasswd se range hors des dossiers accessibles par le web, et la méthode ne vaut que sous Apache : sous Nginx, la règle s’écrit dans la configuration du serveur (déduction).

Le renommage réduit le bruit des robots ; le mot de passe serveur et la restriction par adresse forment la barrière (déduction). Dans Paramètres avancés > Administration, l’option « Vérifier l’adresse IP du cookie » (Check the cookie’s IP address) vérifie que l’adresse du visiteur correspond à celle du cookie. La « Durée de vie du cookie back-office » (Lifetime of the back office cookie) est de 480 heures par défaut, selon la documentation de la version 8 et le code d’installation de la 8.2 : raccourcissez-la si la sécurité le demande.

Le dossier /install se supprime après l’installation : la documentation développeur de PrestaShop 9 parle d’une obligation. Le guide de la 1.6 ajoute les fichiers README.md, CONTRIBUTING.md, CONTRIBUTORS.md et le dossier /docs, et un bloc FilesMatch qui refuse l’accès aux fichiers .tpl.

Décrire mon besoin

Les en-têtes HTTP et le TLS d’un serveur PrestaShop se contrôlent de l’extérieur

La CNIL demande TLS (le protocole qui chiffre les échanges web) sur tous les sites web, obligatoire sur les pages d’authentification et celles qui transmettent des données personnelles, avec les cookies marqués « HttpOnly » et « Secure ». Elle privilégie TLS 1.3 ou, à défaut, 1.2 d’après les recommandations de l’ANSSI, et cite un testeur en ligne de configuration TLS (« SSL Server Test »).

La fiche de référence d’OWASP sur les en-têtes HTTP fournit des valeurs d’exemple :

En-têteValeur d’exemple d’OWASPCe qu’il règle
Strict-Transport-Securitymax-age=63072000 (deux ans), avec includeSubDomains et preloadimpose HTTPS au navigateur ; un certificat expiré enferme alors les visiteurs dehors
X-Content-Type-Optionsnosniffinterdit au navigateur de deviner le type d’un fichier
X-Frame-OptionsDENYinterdit l’affichage de la page dans un cadre
Referrer-Policystrict-origin-when-cross-originlimite ce que l’adresse d’origine révèle aux autres sites

OWASP recommande aussi de retirer X-Powered-By, et de retirer l’en-tête Server ou de le rendre neutre. Le manuel de PHP indique que la directive expose_php vaut « 1 » par défaut et fait apparaître la version de PHP dans l’en-tête X-Powered-By.

Pour Content-Security-Policy, la fiche d’OWASP juge la configuration complexe et renvoie à une fiche dédiée. Une politique trop stricte bloque en silence les scripts de paiement ou de mesure : essayez-la en préproduction (déduction).

Les versions de PHP et les réglages PHP fixent la part du serveur qu’aucun correctif ne couvre

Chaque version de PHP reçoit deux ans de support actif, puis deux ans de correctifs de sécurité, d’après php.net. Au 14 octobre 2026, PHP 8.2 n’en reçoit que jusqu’au 31 décembre 2026, PHP 8.3 jusqu’au 31 décembre 2027, et PHP 8.1 ne figure plus au tableau des versions supportées. La documentation de PrestaShop 9 accepte PHP 8.1 à 8.4 pour la 9.0 et 8.1 à 8.5 pour la 9.1. La compatibilité par version de PrestaShop se lit dans la mission hébergement et infogérance.

Durcir sans casser suppose de respecter les exigences de la boutique. La documentation de PrestaShop 9 écrit que l’option allow_url_fopen doit être activée, car la boutique accède à des fichiers distants, y compris pour les paiements ; son php.ini d’exemple laisse allow_url_include sur « Off ». Le manuel de PHP prévient que disable_functions « can be circumvented » et ne suffit pas à protéger un hébergement mutualisé, et que open_basedir reste « an extra safety net ».

Un durcissement de serveur PrestaShop se livre avec un état avant et après, testé sur une copie

Exigez un état daté avant et après, avec la liste des écarts trouvés et leur sort : corrigé, refusé avec raison, reporté. La CNIL attend en plus une journalisation des événements, des mises à jour critiques installées sans délai (le cas échéant après test) avec une vérification hebdomadaire, et des sauvegardes restaurables, dont la sauvegarde et la reprise fixent les règles.

Le test porte sur le parcours : commande jusqu’au retour du prestataire de paiement, connexion au back-office, envoi d’un e-mail, génération d’un PDF. Pour un paiement hors du site, la documentation développeur de PrestaShop 9 (« Payment modules ») décrit un appel du prestataire vers la boutique, dont la source se vérifie par signature ou jeton : une règle de pare-feu trop stricte peut le couper, et les commandes restent en attente de paiement (scénario).

Le prix suit le nombre de serveurs et d’environnements, la présence d’une préproduction, le choix mutualisé ou dédié, l’étendue du contrôle et la surveillance continue. Faites écrire qui paie la remise en état quand un réglage coupe la boutique.

Décrire mon besoin

Attendre est la bonne décision quand la boutique est déjà compromise ou en plein pic

Une boutique déjà piratée passe d’abord par le nettoyage après piratage : durcir autour d’une porte d’entrée ouverte la protège pour l’intrus (déduction). Un pic de ventes annoncé reporte les modifications qui demandent un redémarrage.

Un serveur obsolète mais essentiel s’isole, et les données personnelles qu’il traite se limitent en attendant son remplacement, d’après la fiche 9.

Avant de confier la mission

Cochez ce que vous avez déjà en main.

  • Paramètres avancés > Informations (Advanced Parameters > Information).

  • Mutualisé, serveur privé virtuel ou dédié.

  • FTP, SSH, base de données, panneau.

  • Sans le transmettre par le formulaire.

  • Ou la mention « aucun ».

  • Pendant les opérations.

Rien n'est envoyé ni enregistré : la liste reste dans votre navigateur.

Sources consultées

  • CNIL, « Guide pratique RGPD : Sécurité des données personnelles », version 2024, mise à jour 2026, fiches 9 et 10, consulté le 14 octobre 2026.
  • PrestaShop, documentation de la version 1.6 en français, « Rendre votre installation de PrestaShop plus sûre », consulté le 14 octobre 2026.
  • PrestaShop, documentation développeur de la version 9, « File structure », consulté le 14 octobre 2026.
  • PrestaShop, documentation développeur de la version 1.7, installation en local (« localhost »), section des permissions, consulté le 14 octobre 2026.
  • PrestaShop, documentation développeur de la version 9, « Configure Nginx », consulté le 14 octobre 2026.
  • PrestaShop, documentation développeur de la version 9, « System requirements » et « Payment modules », consulté le 14 octobre 2026.
  • PrestaShop, documentation utilisateur de la version 8, « Administration », consulté le 14 octobre 2026.
  • OWASP, « HTTP Headers Cheat Sheet », consulté le 14 octobre 2026.
  • php.net, manuel, « Description of core php.ini directives » et « Supported Versions », consulté le 14 octobre 2026.

Foire aux questions

Un hébergement mutualisé peut-il être durci ?

En partie. L’hébergeur règle le système, PHP et le serveur web ; vous gardez les droits de la boutique, le dossier d’administration, les comptes et les modules. La mission consiste alors à faire écrire ce que l’hébergeur ferme et à contrôler de l’extérieur ce qui répond.

Le certificat HTTPS suffit-il à sécuriser le serveur ?

Non. HTTPS protège l’échange entre le visiteur et le serveur ; il ne dit rien des ports ouverts, des droits d’écriture ni des comptes. La CNIL demande TLS en plus des mesures d’accès et de mise à jour.

Faut-il un pare-feu applicatif ?

La CNIL cite, pour les serveurs critiques, des systèmes de détection et de prévention des attaques en complément des mesures de base. Un pare-feu applicatif filtre une partie des requêtes web ; il ne corrige ni un module vulnérable ni un PHP sans correctif (déduction).

Peut-on durcir un serveur sans arrêter la boutique ?

Tout se prépare sur une copie, et la mise en ligne se fait hors pic. Les changements qui demandent un redémarrage du serveur web ou de PHP coupent brièvement le site (déduction) : demandez la fenêtre prévue par écrit.

À quelle fréquence contrôler la configuration d’un serveur ?

La CNIL demande une vérification automatique hebdomadaire des mises à jour. Pour les traitements les plus critiques, elle conseille des tests de vulnérabilités menés de façon régulière et avant toute mise en production d’une nouvelle version logicielle (fiche 10).

Les autres missions de l'axe Sécurité

Un projet réel en combine souvent plusieurs. Vue d'ensemble de l'axe : Sécurité et urgence PrestaShop.

Être recontacté au sujet de votre boutique

Mise en relation gratuite, sans engagement. Décrivez votre besoin : notre prestataire partenaire, spécialiste de PrestaShop, vous recontacte. Vos coordonnées ne servent qu'à cette mise en relation.

Par exemple : ma-boutique.fr

E-mail ou téléphone : au moins l'un des deux, pour vous recontacter.

Sécurité et urgence PrestaShop : les chiffres

Repères sourcés et datés, choisis pour leur rapport à cet axe de besoin. Ils situent votre projet dans son marché, ils ne le chiffrent pas.

PHP 8.1, plafond de PrestaShop 8 31 déc. 2025 Plus aucun correctif de sécurité depuis cette date.
Failles mentionnant PrestaShop 288 Base NVD ; 111 publiées en 2023 et 61 en 2024, surtout dans des modules.
Sites PHP encore en PHP 7 27,7 % Tous sites PHP confondus, octobre 2026. La branche n'est plus corrigée depuis fin 2022.
Avis de sécurité sur le cœur en 2026 4 De janvier au 5 octobre 2026 ; 13 en 2023.

Sources : php.net · consulté en 10/2026 — National Vulnerability Database (NIST) · 05/10/2026 — W3Techs · 04/10/2026 — GitHub · consulté en 10/2026

Un autre besoin ?

Vue d'ensemble : tous vos besoins PrestaShop.

Poursuivre