Comment sécuriser votre boutique PrestaShop ?

Publié le 16 juillet 2024 par Amerigeau @arnaudmerigeau

Sécuriser votre boutique PrestaShop est essentiel pour protéger les données sensibles, maintenir la confiance des clients, et se conformer aux réglementations en matière de sécurité, en adoptant une approche globale incluant mises à jour, gestion des accès, sauvegardes, et autres mesures de protection. Voyons comment sécuriser votre boutique PrestaShop via ce tutoriel complet.

C'est parti pour des astuces précieuses pour savoir comment sécuriser votre boutique PrestaShop !

Vérifiez quotidiennement l'état du tunnel de commande

Il est crucial de vérifier quotidiennement que votre tunnel de commande fonctionne normalement et que l'accès aux paiements reste sécurisé. Cette simple vérification visuelle permet de détecter rapidement toute anomalie pouvant impacter les ventes ou la satisfaction des clients, sans avoir besoin de passer une commande complète.

En observant l'apparence et le comportement de votre site, vous pouvez identifier des problèmes tels que des pages de paiement non fonctionnelles, des redirections suspectes ou des interruptions de service, et les résoudre avant qu'ils n'affectent gravement votre activité.

Modifiez régulièrement les accès au back-office

Pour renforcer la sécurité de votre boutique PrestaShop, il est recommandé de modifier régulièrement les identifiants et mots de passe du back-office, tant pour vous-même que pour vos employés. Cette pratique réduit le risque de compromission des accès par des personnes non autorisées. En renouvelant fréquemment les informations d'identification, vous diminuez les chances qu'un mot de passe volé ou deviné soit utilisé pour accéder à des zones sensibles de votre site, protégeant ainsi les données critiques de votre entreprise.

Créez un accès différent pour chaque utilisateur

Attribuer un accès unique à chaque personne se connectant à votre site est une mesure de sécurité fondamentale. En cas de départ ou de changement de collaborateur, vous pouvez facilement révoquer l'accès spécifique sans affecter les autres utilisateurs. Cette individualisation des accès permet également de suivre et d'auditer les actions de chaque utilisateur, facilitant l'identification de comportements suspects et la gestion des responsabilités au sein de votre équipe.

Définir des droits différents selon le profil de l'employé

La gestion des droits d'accès selon le profil de l'employé est essentielle pour limiter les risques et protéger les informations sensibles. En assignant des permissions spécifiques basées sur les rôles et responsabilités de chaque utilisateur, vous contrôlez quelles actions chaque employé peut effectuer. Par exemple, un responsable marketing pourrait avoir accès aux outils d'analyse et de promotion, tandis qu'un gestionnaire de commandes aurait accès aux informations sur les ventes et les stocks. Cette segmentation aide à prévenir les erreurs humaines et les abus potentiels en assurant que chaque employé dispose uniquement des droits nécessaires à l'accomplissement de ses tâches.

Utilisez la version la plus récente du CMS

La version la plus récente d'une application ou d'une plateforme est toujours la plus stable et sécurisée. En effet, lorsque les développeurs publient de nouvelles versions, c'est souvent pour améliorer la sécurité. Cela inclut :

  • Audit de sécurité globale : vérification des potentielles attaques, des codes sources, et des dossiers.
  • Résolution des failles de sécurité : installation de nouveaux modules de sécurité pour combler les failles découvertes.
  • Prévention des injections SQL : le SQL est une attaque où l'attaquant insère des instructions malveillantes dans des données cryptées.
  • Vérification des scripts PHP : le PHP est un langage de script gérant de nombreuses données, nécessitant des vérifications régulières.

Ces mises à jour offrent des solutions continues pour optimiser la sécurité de la navigation et réduire au maximum la vulnérabilité du CMS.

Chaque fois qu'une nouvelle version est publiée, il est essentiel de consulter le changelog. Ce document liste tous les changements apportés lors de la mise à jour, et quasiment toutes les mises à jour incluent des améliorations de sécurité. Ne manquez donc pas de mettre à jour votre CMS dès qu'une nouvelle version est disponible.

De plus, lorsqu'une correction de sécurité est indiquée, c'est souvent un bon indice pour les attaquants, leur facilitant le piratage de votre site. Les sites spécialisés partagent régulièrement les failles de sécurité découvertes. Alors, ne simplifiez pas le travail des pirates, soyez vigilant.

Sécurisez avec un certificat SSL et le HTTPS

Le certificat SSL crée un canal de sécurité entre le navigateur web et le serveur web. Cela signifie que les données échangées entre le client et le serveur sont cryptées, garantissant ainsi leur confidentialité et intégrité. L'URL passe alors de HTTP (Hyper Text Transfer Protocol) à HTTPS, où le " S " signifie " Secure ". Un site en HTTPS indique que les données échangées sont chiffrées, les protégeant contre toute interception ou altération.

C'est une mesure de sécurité essentielle pour tous les sites web. De nombreux internautes ne finaliseront pas leurs achats sur un site qui n'a pas cette certification. Le cadenas affiché à gauche de l'adresse URL informe rapidement le client que le site est sécurisé, et l'absence de cette indication peut nuire à vos conversions et à votre image de marque, en donnant l'impression que votre boutique n'est pas sécurisée.

En outre, Google tient compte des certificats SSL pour le référencement. Un site non sécurisé n'apparaîtra pas en tête des résultats de recherche, ce qui impacte à la fois la sécurité et la visibilité de votre site. Il est donc doublement crucial d'adopter cette mesure pour assurer la confiance de vos clients et améliorer votre positionnement sur les moteurs de recherche.

Comment sécuriser votre boutique PrestaShop avec des mots de passe forts ?

Le mot de passe de l'administrateur doit être long et complexe pour garantir une bonne protection. Un mot de passe sécurisé doit inclure :

  • Majuscules
  • Minuscules
  • Chiffres
  • Un ou plusieurs caractères spéciaux (par exemple : &, !, @, ., ?)

Les mots de passe trop simples comme " password ", " azerty ", " abcdef " sont à proscrire car ils sont facilement devinés par les pirates informatiques.

Toutefois, choisissez un mot de passe complexe dont vous pourrez vous souvenir pour éviter de devoir le réinitialiser fréquemment.

Renforcez les règles dans le fichier .htaccess

Le fichier .htaccess est un fichier crucial pour les serveurs web Apache. Il contrôle l'accès au répertoire où il est placé ainsi que tous ses sous-répertoires. Grâce à .htaccess, vous pouvez implémenter diverses mesures de sécurité telles que :

  • Verrouillage de l'accès au panneau d'administration : en créant une liste blanche d'IP autorisées à accéder au back-end du magasin.
  • Protection des fichiers de templates : en empêchant leur accès direct.
  • Prévention de l'accès direct à certains dossiers : en limitant les permissions d'accès.

Le fichier .htaccess peut être utilisé de nombreuses manières différentes, mais il est recommandé de le manipuler uniquement si vous avez suffisamment d'expérience.

Voici quelques bouts de code pour divers usages :

# Bloquer tous les pays sauf la France
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^FR$
RewriteRule ^ - [F,L]
# Bloquer certaines IP
Order Deny,Allow
Deny from 00.00.000.00.00
Allow from all
# Désactiver la navigation dans les répertoires
Options -Indexes
# Empêcher l'affichage du fichier .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
# En-têtes de sécurité
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Mettez en place un système de sauvegarde

La sauvegarde consiste essentiellement à faire une copie de vos paramètres, de votre base de données, de vos dossiers et du contenu de votre site web. Ces sauvegardes sont cruciales dans plusieurs situations :

  • Panne du site internet: en cas de dysfonctionnement, vous pouvez restaurer votre site rapidement.
  • Piratage : si votre site web est compromis, une sauvegarde vous permet de récupérer vos données en toute sécurité.
  • Problèmes nécessitant une restauration : toute erreur critique peut être corrigée en restaurant une version antérieure de votre site.

La sauvegarde est une assurance qui vous permet de récupérer facilement toutes vos informations et données en cas de problème.

J'utilise couramment le module reconnu NT Sauvegarde et Restaure qui fait ce qu'on lui demande.

Vous pouvez choisir de sauvegarder votre boutique vous-même ou de confier cette tâche à votre hébergeur. La plupart des plans d'hébergement incluent un service de sauvegarde hebdomadaire. Cependant, je vous conseille de demander ou de réaliser des sauvegardes supplémentaires et plus fréquentes pour garantir une protection optimale.

Utilisez la vérification IP des cookies

Pour activer ou désactiver l'utilisation des cookies, il suffit de se rendre dans votre back office (panneau de configuration) et de cliquer sur Administration > Préférences. Vous pouvez ensuite activer l'option " Vérifier l'adresse IP sur le cookie " pour renforcer la sécurité de votre site Prestashop.

Il est important d'informer vos visiteurs de l'utilisation des cookies pour stocker leurs informations. Des modules sont disponibles pour vous aider à afficher cette notification. Respectez la loi sur les cookies et la protection des données des utilisateurs en étant vigilant sur ces paramètres.

Sécurisez le front office

Prestashop a une fonction par défaut activable dans les paramètres :

Accédez à vos " Préférences " puis " Général ". Ensuite, cliquez sur " Augmenter la sécurité du Front Office " - réglez-la sur " oui ".

De cette façon, chaque session client reçoit une URL unique. Ainsi, les informations ajoutées par le client sont sécurisées et ne peuvent pas être utilisées dans un autre navigateur ou ordinateur.

Mettez à jour vos modules et thèmes

Soyez vigilant quant à ce que vous ajoutez à votre boutique. Assurez-vous que le module ou le thème soit approuvé et vérifié par les développeurs de la plateforme. Ensuite, vous pouvez le télécharger et l'installer sans aucun problème.

Tous les thèmes et modules de PrestaShop sont approuvés, vous pouvez donc les utiliser en toute sécurité. L'approbation concerne surtout les plugins ou thèmes que vous pourriez télécharger sur d'autres plateformes. Certains peuvent être infectés par des logiciels malveillants.

Supprimez les modules et thèmes inutiles

Supprimez les modules inutiles de manière définitive. Même un module désactivé peut présenter des failles de sécurité, donc il est important de les supprimer complètement.

Assurez-vous de supprimer les modules inutiles au lieu de simplement les désactiver, car même un module désactivé peut poser des risques de sécurité. Soyez vigilant et supprimez-les de manière permanente pour éviter tout problème potentiel.

Utilisez un module de sécurité

De nombreux plugins sont disponibles pour renforcer la sécurité de votre boutique PrestaShop. Par exemple, Protect My Shop permet de configurer 9 scripts de protection différents dans le back office.

Vous pouvez également utiliser des modules tels que reCAPTCHA pour ajouter un captcha à votre boutique ou Block Bots pour bloquer l'accès à certains robots ou utilisateurs indésirables. Protégez votre boutique en ligne comme vous protégeriez un magasin physique.

Quelles sont les failles de sécurité avec PrestaShop ?

Faille de sécurité n°1 : les modules

Dans le dossier /modules/ de votre boutique Prestashop, vous trouverez non seulement les modules natifs, mais aussi les modules achetés ou gratuits qui peuvent présenter des failles de sécurité. Il est important d'être conscient que plus un module est populaire même s'il est payant / premium, plus vous risquez d'être victime de piratage.

Il est crucial de ne pas installer trop de modules inutiles. Assurez-vous de désinstaller et supprimer les modules " désactivés " ou non utilisés, ainsi que les dossiers tels que /modules.old/, /archives/ ou encore /modules.disabled/.

Voici quelques modules Prestashop sur lesquels vous devriez être vigilant notamment :

  • Modules à supprimer :
    • explorerpro,
    • sampledatainstall,
    • gamification,
    • autoupgrade,
    • posstaticblocks,
    • ...
  • Modules à mettre à jour :
    • colorpictures,
    • ps_facetedsearch,
    • pscartabandonmentpro,
    • scquickaccounting,
      scexportcustomers,
    • ps_checkout,
    • advancedpopupcreator,
    • shoppingfeed,
    • ...

Failles de sécurité connues

Voici quelques failles parmi les plus connues :

  • Une vulnérabilité majeure a été découverte dans le fichier blm.php, permettant aux hackers de lancer des requêtes POST sur votre site. Ce fichier malveillant peut être créé à la racine de votre site et peut être utilisé pour extraire des informations sensibles.
  • PHPunit, également connu sous le nom de CVE-2017-9841, est une faille de sécurité datant de 2017 qui affecte le framework de test unitaire PHPUnit, largement utilisé pour les applications PHP. Malgré son ancienneté, cette vulnérabilité est toujours exploitée par des hackers pour cibler des modules spécifiques de PrestaShop.
  • Une autre faille de sécurité concerne le cache Smarty et implique une injection SQL. Cette vulnérabilité a été corrigée dans la version 1.7.8.7. Il est fortement recommandé aux utilisateurs de mettre à jour leur système. Pour ceux qui ne peuvent pas effectuer la mise à jour, il est conseillé de supprimer la fonction de cache MySQL Smarty. Pour plus de détails, veuillez consulter le lien suivant : https://friends-of-presta.github.io/security-advisories/core/2022/07/25/core-CVE-2022-31181.html.

Comment être averti des failles de sécurité ?

Voici 3 façons d'être tenu au courant des nouvelles failles de sécurité :

  • Rejoignez le groupe Facebook de l'association PrestaShop France - Friends of Presta. Ce groupe est gratuit et est l'association officielle la plus populaire en France pour la communauté PrestaShop. Vous pouvez vous inscrire en suivant ce lien : https://www.facebook.com/groups/prestashopfrance
  • Suivez les CVE de Friends of Presta pour rester informé des dernières failles de sécurité liées aux modules. Cette liste est régulièrement mise à jour et est souvent accompagnée d'un correctif pour résoudre le problème. Vous pouvez consulter les CVE en suivant ce lien : https://friends-of-presta.github.io/security-advisories/core/2022/07/25/core-CVE-2022-31181.html
  • Consultez le site https://www.opencve.io/ pour suivre les CVE (Common Vulnerabilities and Exposures) liées aux failles de sécurité informatique. Ce site propose une liste publique de failles de sécurité informatique et est un excellent moyen de rester informé sur les dernières vulnérabilités.

Si je réponds à la question " Comment sécuriser votre boutique PrestaShop ? " je pense aussi à comment réparer ma boutique une fois hackée.

La suite de l'article devrait vous plaire.

Scannez les fichiers de votre boutique

Voici un script de nettoyage est disponible à cette adresse : https://devcustom.net/public/scripts/cleaner.zip

Pour l'utiliser, décompressez le fichier cleaner.php et déplacez-le à la racine de votre site. Ensuite, appelez-le en utilisant cette URL : https://votresite.com/cleaner.php

Ce script se met à jour automatiquement. N'oubliez pas que la description de Prestashop ne correspond pas vraiment au hack actuel. Merci à @Eolia pour ce script !

Vérifiez les logs de votre serveur

Il est essentiel de surveiller régulièrement les logs de votre serveur pour assurer le bon fonctionnement de votre boutique PrestaShop. Ces fichiers contiennent des informations précieuses sur les erreurs, les requêtes et les performances de votre site.

En analysant les logs, vous pouvez identifier rapidement des problèmes potentiels, tels que des erreurs de connexion ou des requêtes qui échouent, et ainsi prendre les mesures nécessaires pour les résoudre.

Exemple d'un log d'erreurs :

[Tue Jul 16 18:59:43 2024] [authz_core:error] [pid 3550545] [client 37.65.36.5:46454] AH01630: client denied by server configuration: /home/www/img/p/8/7/7/5/4, referer https://www.monsite.fr/5953-led?page=6
[Tue Jul 16 19:27:11 2024] [authz_core:error] [pid 3657529] [client 37.65.37.126:27348] AH01630: client denied by server configuration: /home/www/img/p/8/6/4/4/7, referer https://www.monsite.fr/5952-lyres

Exemple d'un log d'accès :

66.249.66.43 - - [16/Jul/2024:00:03:19 +0200] "GET /?jpmnop/s1476173.shtml HTTP/1.1" 403 199 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.66.43 - - [16/Jul/2024:00:03:20 +0200] "GET /?jpmnop/s2249879.shtml HTTP/1.1" 403 199 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.126 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.66.43 - - [16/Jul/2024:00:03:20 +0200] "GET /?jpp/s1487946.shtml HTTP/1.1" 403 199 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Ces logs vous permettent notamment de savoir si une ou plusieurs IPs vous attaquent avec des requêtes en masse.

N'oubliez pas d'intégrer cette vérification dans votre routine de maintenance pour garantir la sécurité et la stabilité de votre boutique en ligne.

Désinstallez les modules

Pour résoudre des problèmes techniques sur votre boutique PrestaShop, il est possible de désinstaller les modules un à un.

Cette méthode permet d'identifier facilement quel module pourrait provoquer une erreur sur votre site. En procédant ainsi, vous pourrez isoler les conflits éventuels et déterminer si un module spécifique est à l'origine de dysfonctionnements.

Après chaque désinstallation, testez votre site pour voir si le problème persiste. Cette approche systématique vous aide à maintenir la stabilité de votre boutique tout en assurant une expérience utilisateur optimale.

Désinstallez les thèmes

Pour diagnostiquer des problèmes sur votre boutique PrestaShop, il est aussi possible de désinstaller les thèmes un à un.

Cette démarche vous permet de déterminer si un thème spécifique est à l'origine d'une erreur sur votre site.

Testez avec le thème par défaut puis vérifiez si le problème persiste. Cela vous aidera à isoler le conflit et à garantir que votre boutique fonctionne correctement.

Friends Of Presta Security : qu'est-ce que c'est ?

Friends Of Presta Security est une initiative de l'association Friends Of Presta : ses membres gèrent l'information, développent, éditent des modules, hébergent, et s'occupent de la sécurité de l'écosystème PrestaShop.

Malheureusement, ces derniers mois, des réseaux malveillants s'intéressent de plus en plus aux sites PrestaShop, qui étaient jusqu'ici relativement épargnés.

Je tiens d'ailleurs à remercier 202 eCommerce, TouchWeb, 772424, Profileo et Creabilis pour tout le super travail qu'ils ont fait sur la sécurité de PrestaShop. Leur expertise et leur engagement ont été essentiels pour garantir un environnement sûr pour les boutiques.

Allez plus loin avec l'optimisation des performances

Une fois votre boutique PrestaShop sécurisée et stable, pensez à optimiser les performances de votre boutique.

Pour ce faire, je vous invite à lire ces guides complets :

Bonnes ventes !