Ressources gratuites pour aider les débutants à créer, gérer et développer leur site Joomla

Sécurité Joomla : le Guide

Le système de gestion de contenu Joomla (CMS) est répandu sur Internet en raison de sa facilité d'utilisation. Il a été, à ce jour, téléchargé plus de 110 millions de fois. Aussi populaire qu'il soit Joomla, comme tous les autres sites Web, CMS, applications, site de e-commerce, présente des failles de sécurité. Personne n'y échappe, c'est pour cela qu'il est important de prendre toutes les précautions dès le départ pour assurer la protection et la Sécurite de votre site joomla.

La sécurité de Joomla

Ce guide est une liste détaillée des actions à mener pour sécuriser Joomla. Si la protection de votre site Web Joomla contre toutes les attaques, présentes et à venir, est une de vos préoccupations, alors lisez cet article, il a été écrit pour vous ! Tous les actions mentionnées dans cet article, visent à vous permettre de sécuriser votre site Joomla.

Sécurité de joomla : comment l'améliorer

Effectuez des sauvegardes régulières

Gagnez du temps en vous préparant au pire des scénarios au cas où votre site Web serait piraté. Par conséquent, il est conseillé de créer une sauvegarde de travail complète de votre site Web Joomla. Une sauvegarde fonctionnelle peut restaurer votre site Web en quelques minutes après une cyber attaque.

Sauvegarde manuelle

La sauvegarde manuelle du site Joomla sauvegarde : les fichiers et dossiers de Joomla et sa base de données. Pour sauvegarder vos fichiers et dossiers Joomla, utilisez Filezilla. La base de données peut être sauvegardée via phpMyAdmin dabs le panel de votre hébergeur. Cliquez sur le nom de la base de données sur le côté gauche de la page. puis "Exporter". Sélectionnez l'onglet Exporter puis cliquez sur le bouton "Go". Enregistrez-la ensuite dans un emplacement sécurisé.

Les étapes de la sauvegarde manuelle de Joomla

- Les fichiers et répertoires

Pour sauvegarder vos fichiers et dossiers Joomla, utilisez un utilitaire FTP - Filezilla

Étape 1 : Téléchargez FileZilla et installez-le en suivant le processus
Étape 2 : Configurer le logiciel avec les parametres FTP de votre site web et connectez-vous à votre site en utilisant SFTP plus sécurisé. 
Étape 3 : Une fois connecté, localisez un dossier sur votre ordinateur, là où vous souhaitez enregistrer la sauvegarde des fichiers.  
Étape 4 : Enfin, dans le volet de la fenêtre «site distant», accédez à la racine et copiez le contenu dans le volet de la fenêtre «site local». Le panneau inférieur montrera la progression. Une fois terminé, vérifiez vos fichiers dans le dossier local.

Les clients FTP peuvent télécharger tous les fichiers un par un sur votre ordinateur local. Cependant, ce processus peut être lent. Une fois les fichiers téléchargés, compressez le dossier en un seul fichier zip. Protégez-le par mot de passe et enregistrez-le dans un emplacement sécurisé.

- Pour la base de données Joomla

La base de données peut être sauvegardée à l’aide de la ligne de commande. Pour se faire, procédez comme suit:

Étape 5 : Rendez-vous dans le panel de votre hébergeur
Étape 6 : En utilisant phpMyAdmin sauvegarder votre base de données

Sauvegarde avec Akeeba BackUp

Pour une sauvegarde automatisée, téléchargez l'extension Joomla Akeeba Backup. 

Étape 1 : Pour installer Akeeba sur votre site Joomla, téléchargez le fichier pour Joomla en utilisant Site officiel d’Akeeba.
Étape 2 : Une fois l'installation terminée et pour sauvegarder votre site, accédez à Components >Akeeba puis Sauvegarde. Cliquer sur ‘Backup Now’ pour sauvegarder.
Étape 3 : Les progrès peuvent être surveillés pendant qu’il fonctionne.
Étape 4 : Lorsque la sauvegarde est terminée, cliquez sur «Gérer les sauvegardes», vous pouvez ainsi voir toutes les sauvegardes. Vous pouvez télécharger la sauvegarde à partir d’ici et l’enregistrer localement.

Utilisez des extensions et des Templates de confiance

Il est recommandé d'utiliser un nombre minimum d'extensions sur votre site Web pour obtenir le niveau de sécurité Joomla optimal. L'utilisation d'extensions ou de Template non approuvés peut poser des vulnérabilités et affecter les performances de votre site Web Joomla. 

Consultez la liste des extensions vulnérables.

Cela signifie-t-il qu'il n'y a jamais d'extensions ou de modèles mal exécutés ? Non, ce n'est pas le cas. Sur le site Web de la liste des extensions vulnérables ( https://vel.joomla.org/live-vel ), vous pouvez voir une liste des extensions où des vulnérabilités de sécurité ont été trouvées. Il est sage de vérifier régulièrement qu'il n'y a pas d'extensions que vous utilisez.

Changez le préfixe des tables de la base de données pour la sécurité de Joomla

La base de données Joomla contient des informations sensibles sur votre site, y compris vos mots de passe utilisateur, commentaires, URL de site, etc. Avoir le préfixe de base de données par défaut peut augmente le risque d’injection SQL. Par conséquent, pour la sécurité Joomla il est important  d’ajouter un préfixe unique à vos tables. Il sera ainsi difficile pour les attaquants de récupérer des données de la base de données Joomla.

Lors de l'installation de Joomla, changez le prefixe des tables, lorsque la question est posée.

On peut voir le prefixe des tables de Joomla en suivant les indications suivantes:

Étape 1: Naviguez d’abord vers Système > Configuration.
Étape 2: Maintenant, cliquez sur le Onglet Server pui Paramètres de la base de données
Étape 3: Enfin, le Préfixe des tables est visible ici.

Gardez votre site Web Joomla à jour

Les mises à jour de votre site Web Joomla peuvent assurer la sécurité de votre site.  

Joomla dispose d'une équipe de sécurité dédiée qui est connue pour déployer rapidement des correctifs en cas de détection de faille. Ne pas corriger votre site Web Joomla peut le rendre vulnérable au piratage.

Pour vérifier les mises à jour de votre site, vous pouvez procéder comme suit :

Étape 1 : Connectez-vous à votre site Joomla en tant que super administrateur
Étape 2 : Ensuite, accédez à Composants > Mise à jour Joomla
Étape 3
 : Joomla vérifie les nouvelles mises à jour est disponibles. S'il affiche une nouvelle mise à jour, cliquez simplement sur l'option "Installer la mise à jour". 

Avant de mettre à jour vers une version plus récente de Joomla, certaines choses doivent être vérifiées :

  • Vérifiez la compatibilité de votre Template avec la nouvelle version de Joomla. Si ce n'est pas le cas, demandez à l'auteur du modèle de le mettre à jour ou d'utiliser une alternative.
  • Assurez-vous que toutes les extensions Joomla sont compatibles avec la nouvelle version de Joomla. Supprimez toutes celles qui ne sont pas compatibles. Pour mettre à jour les extensions, accédez à Extensions> Gérer et cliquez sur mettre à jour.
  • Après la mise à jour vers une version plus récente de Joomla, effacez le cache de votre site Joomla. Cela peut être fait en utilisant la fonctionnalité intégrée de Joomla.

Cachez la version de votre Joomla

Pour améliorer la sécurité de Jooml, cachez toujours sa version.

Pour se faire, procédez comme suit:

Étape 1 : Via Filezilla, accèdez au fichier de votre Template : /templates/votreTemplate/index.php
Étape 2 : Copiez le fichier index.php sur votre disque, ouvrez ce fichier avec un éditeur de texte et recherchez le code, en utilisant la fonction de recherche de l'éditeur de texte :
<jdoc: include type = "head" />

Étape 3 : Une fois cette ligne trouvée, ajoutez le code suivant juste avant: 

$ this-> setGenerator ("");

Étape 4 : Replacer le fichier index.php sur le server.

Votre site va à présent masquer votre version de Joomla. Si vous mettez à jour votre site, assurez-vous de répéter ce processus pour la sécurité Joomla.

Utilisez .htaccess pour déployer les paramètres de configuration de base

Un site Web Joomla est livré avec un .htaccess fichier (serveur Apache).

Les fichiers .htaccess sont des fichiers de configuration des serveurs HTTP Apache. Leur particularité est leur emplacement : dans les répertoires de données du site web, au lieu du répertoire de configuration d'Apache. La portée de leur configuration est limitée au contenu du répertoire où ils résident...

Source : Wikipédia

Vous pouvez utiliser .htaccess pour bloquer les utilisateurs, pour protéger par mot de passe certains fichiers et dossiers, pour rediriger les utilisateurs vers d’autres pages de votre site Web.

Un serveur web Apache utilise un fichier htaccess dans le répertoire principal pour des configurations spécifiques du site. Joomla! propose un fichier htaccess préconfiguré (htaccess.txt). Il contient des instructions pour éviter les exploits le plus courants et la mise en œuvre des urls SEF. En outre, il fournit certains paramètres qui doivent être vérifiés en fonction de votre environnement :

  • IndexIgnore *
  • Options +FollowSymLinks
  • Options -Indexes
  • RewriteBase /

L'activation de htaccess.txt signifie la fusion d'un fichier existant .htaccess avec le htaccess.txt et de décider des paramètres mentionnés ci-dessus.

Source : https://docs.joomla.org/Preconfigured_htaccess/fr

Contenu du fichier htaccess.txt pour la sécurité de Joomla

##
# @package    Joomla
# @copyright  Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved.
# @license    GNU General Public License version 2 or later; see LICENSE.txt
##

##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line 'Options +FollowSymLinks' may cause problems with some server configurations.
# It is required for the use of mod_rewrite, but it may have already been set by your 
# server administrator in a way that disallows changing it in this .htaccess file.
# If using it causes your site to produce an error, comment it out (add # to the 
# beginning of the line), reload your site in your browser and test your sef urls. If 
# they work, then it has been set by your server administrator and you do not need to 
# set it here.
##

## No directory listings
<IfModule autoindex>
  IndexIgnore *
</IfModule>

## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
Options -Indexes

## Mod_rewrite in use.

RewriteEngine On

## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site then comment out the operations listed 
# below by adding a # to the beginning of the line.
# This attempts to block the most common type of exploit `attempts` on Joomla!
#
# Block any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root home page
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# Uncomment the following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##

# RewriteBase /

## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.

Source : https://docs.joomla.org/Preconfigured_htaccess/fr

Utilisez l'authentification à deux facteurs Joomla

Il est recommandé d'activer l'authentification à deux facteurs de Joomla car elle ajoute une couche de sécurité supplémentaire à votre site Web Joomla. Traditionnellement, lorsque vous souhaitez vous connecter à votre site Web, vous devez fournir votre nom d'utilisateur et votre mot de passe afin de vous identifier pour accèder au Back Office de Joomla. Le problème est que votre nom d'utilisateur et votre mot de passe peuvent être volés. Le plugin d'authentification à deux facteurs Joomla peut protéger votre site Web contre les pirates en ajoutant une deuxième couche de sécurité vous demandant d'entrer un code à 6 chiffres, après avoir saisi votre nom d'utilisateur et votre mot de passe, qui change toutes les 30 secondes, ce qui rend très difficile pour les pirates de devinez le code. 

Restreindre l'accès au backend d'administration Joomla

Limitez l'accès au Back office de Joomla en utilisant le filtrage IP.  

Étape 1 : Créez un fichier .htaccess - s'il n'est pas déjà présent dans le dossier que vous souhaitez protéger.
Étape 2 : Ajoutez le code suivant au fichier .htaccess :

Order Deny, Allow
Deny from all
Allow from xx.xx.xx.xx

Étape 3 : Entrez l'adresse IP dédiée à partir de laquelle vous souhaitez autoriser l'accès à la place de xx.xx.xx.xx.

Vous pouvez également utiliser des extensions de sécurité qui peuvent restreindre l'accès au backend d'administration Joomla à l'aide de la fonction de filtrage IP et incluent de nombreuses autres fonctionnalités qui renforcent la sécurité de votre site Web Joomla.

Choisissez des mots de passe sécurisés

Utilisez des noms d'utilisateurs et mots de passe compliqués. N'utilisez pas "admin" comme nom d'utilisateur et 123456 comme mot de passe. Choisissez un mot de passe complexe. C'est probablement l'un des meilleurs moyens de renforcer votre sécurité Joomla, et le plus simple !

L'utilisation d'un mot de passe sécurisé est nécessaire pour une sécurité Joomla. Assurez-vous que votre mot de passe de connexion est suffisamment long (8 à 14 caractères) et comprend des lettres, des chiffres et des symboles. Étant donné que les mots de passe sont sensibles à la casse, l'utilisation de lettres majuscules et minuscules le rend encore plus fort. De plus, prenez l'habitude de changer les mots de passe administrateur au moins une fois par mois.

Il existe des générateurs de mot de passe sécurisé comme le site : https://www.lastpass.com/fr/features/password-generator
Exemple de mot de passe sécurisé généré par le service en ligne : #T1$i!ReoD7bmexv^ki#pi%ewe

Définir les autorisations de fichier Joomla recommandées

La sécurité Joomla peut être encore renforcée si les autorisations de fichier sont correctement définies. La suggestion par défaut de Joomla est 644 pour les fichiers et 755 pour les répertoires.

Etape1 : Ouvrez FileZilla et connectez-vous à votre site Web.
Etape 2 : Sélectionnez le fichier / dossier dont vous souhaitez modifier le CHMOD. Cliquez avec le bouton droit et sélectionnez l’option Autorisations de fichier.
Etape 3 : Pour les fichiers, définissez le champ Valeur numérique sur 644 pour les fichiers et pour les répertoires, changez-le en 755. Enfin, cliquez sur le bouton “OK”.
Etape 4 : Définissez les autorisations du fichier Configuration.php sur 444 & ne jamais utiliser 777 autorisations pour les fichiers et dossiers

Désactiver les injections de script

Pour bloquer toute tentative des hackers d’injecter du code malveillant dans les fichiers PHP de votre site Joomla, utilisez le fichier .htaccess. Ajoutez simplement le code pour désactiver les attaques par injection de script:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]

RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})

RewriteRule ^(.*)$ index.php [F,L]

Profils et droits

Joomla propose des profils avec des niveaux d'accès différents. 

Les gestionnaires ont accès au Back Office.

  • Ils peuvent créer et modifier des catégories et des articles.
  • Ils ont accès aux médias qu'ils peuvent télécharger et supprimer des médias.
  •  Mais ils ne peuvent pas installer ou de supprimer des extensions.

Les administrateurs disposent de tous les droits dont disposent les gestionnaires.

  • Ils ont accès à la gestion des utilisateurs, au gestionnaire de menus et au gestionnaire d'extensions. I
  • Mais ils ne peuvent accéder au menu de configuration de Joomla.

Les super administrateurs ont un accès complet au backend Joomla. 

  • Ils ont accès à la Configuration globale.
  • Ils peuvent ajouter, modifier et supprimer des super utilisateurs.

Distribuez avec soin les ôles et les droits à chaque groupe d'utilisateurs. 

Utilisez des connexions FTP sécurisées

Assurez-vous que les connexions utilisées pour accéder aux fichiers de votre site Web Joomla sont sécurisées. Vous devez utiliser le cryptage SFTP si votre hébergement le propose ou SSH. Si vous utilisez un client FTP, le port par défaut pour SFTP est généralement 22.

Certains clients FTP stockent les mots de passe en texte brut ou encodés sur votre ordinateur. Même certains mots de passe codés peuvent être reconvertis à l'original. Nous vous recommandons fortement de ne pas enregistrer les mots de passe FTP dans le client pour éviter d'être piraté.

Mettez à jour la version PHP de votre site Web Joomla

Protégez votre site Web contre une variété d'attaques de piratage et renforcez la sécurité de votre site Joomla en mettant à jour la version PHP de votre site vers la dernière version stable. Assurez-vous de sélectionner une version PHP compatible avec vos modèles et extensions Joomla.

Utilisez une extension de sécurité Joomla

Il est nécessaire de limiter les tentatives de connexion sur le backend d'administration Joomla pour éviter les attaques par force brute sur votre site Web Joomla. Cela peut être mis en œuvre par diverses extensions de sécurité Joomla qui protègent le backend de l'administrateur de votre site Web contre les tentatives de piratage. Vous pouvez trouver de telles extensions dans la catégorie de la liste de sécurité des extensions Joomla .

Choisissez un fournisseur d'hébergement sécurisé

Assurez-vous que le fournisseur d'hébergement que vous choisissez implémente les mesures de sécurité Joomla. Si vous choisissez un hébergement partagé, assurez-vous que le sous-réseau est implémenté en tenant compte de la sécurité Joomla. 

Utilisez HTTPS pour renforcer la sécurité de Joomla

Il est fortement recommandé d'installer un certificat SSL (Secure Socket Layer) sur votre site Web Joomla également renommé Transport Layer Security (TLS) dans les dernières versions car ils crypteront les données transmises entre le serveur et le client, donc théoriquement seule la boutique en ligne peut débiter votre carte de crédit, pour le cas d'un achat en ligne, par exemple. 

Assurez-vous que tout votre trafic HTTP est redirigé vers HTTPS. Pour ce faire, ajoutez le code suivant à votre fichier .htaccess :

# Rediriger HTTP vers HTTPS
RewriteEngine On RewriteCond %{HTTPS} off 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
Règle de réécriture ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Vous pouvez reconnaître une telle connexion sécurisée par divers symboles de clé ou de cadenas mais dans tous les cas par l'abréviation de protocole précédente https:// .

Vérifier les messages post-installation

Il est fortement recommandé de lire tous les messages post-installation car l'équipe Joomla vous fournit des informations importantes qui nécessitent votre attention après la mise à niveau ou après l'installation de Joomla pour la première fois. Ces messages contiennent principalement des configurations de sécurité Joomla ou des modifications de fichiers qui doivent être effectuées manuellement et qu'une mise à niveau ne peut pas modifier.

Installez un captcha

Le CAPTCHA (acronyme de l'anglais "Completely Automated Public Turing test to tell Computers and Humans Apart") est une mesure de sécurité de type "authentification par question-réponse". Cette mesure permet de protéger votre compte du spam et d'empêcher toute tentative de décryptage de votre mot de passe en vous soumettant à un test simple visant à vérifier que c'est bien un humain et non un ordinateur qui tente d'accéder au compte.

Source : googleo

Consultez notre article : Ajouter un captcha à Joomla (2 méthodes proposées)

 

Conclusion

Parce qu'il y aura toujours des risques, la sécurité de Joomla restera un processus continu, nécessitant une évaluation fréquente des porteurs d'attaques possibles. Les propriétaires et administrateurs de sites Web doivent toujours améliorer la sécurité de leur site Web afin de réduire le risque de piratage. 

 

Les dernières mise à jour sécurité

Mise à jour Joomla 3.9.21

Expert Joomla – 26 Août 2020 – Une nouvelle version de sécurité du CMS Open Source est disponible. Il s’agit de la mise à jour Joomla 3.9.21. L’installation de cette version corrigera 3 failles de sécurité et inclut une vingtaine de corrections de bugs et d’améliorations. Nous vous disons tout ce qu’il y a à savoir sur la version Joomla 3.9.21.

3 failles de sécurité corrigées dans la version Joomla 3.9.21

Tout d’abord, la mise à jour Joomla 3.9.21 permettra de résoudre trois vulnérabilités de sécurité, présentes dans le core du CMS :

  • XSS dans mod_latestactions (affectant Joomla! 3.9.0 à 3.9.20) ;
  • Redirection ouverte dans la fonction de vote com_content (affectant Joomla! 3.0.0 à 3.9.20) ;
  • Traversée de répertoire dans com_media (affectant Joomla! 2.5.0 à 3.9.20).

Joomla 3.9.21 : Corrections & améliorations

La nouvelle version Joomla 3.9.21 va ensuite apporter une vingtaine de corrections de bugs et d’améliorations au CMS. Parmi les corrections et améliorations, vous trouverez notamment :

  • TinyMCE mis à jour
  • CodeMirror mis à jour
  • Télécharger le fichier de package / Joomla Update: vérification de la taille du fichier de téléchargement ajoutée
  • Journal des actions: consigner un événement lorsque Joomla est mis à jour

Pour en savoir plus sur la mise à jour Joomla 3.9.21, vous pouvez lire l’article de la Fondation Joomla ici (en anglais).

Comment effectuer la mise à jour Joomla 3.9.21 ?

Les mises à jour Joomla vous permettent de garder votre site internet sécurisé. Pour cela, il est nécessaire d’installer les nouvelles versions du CMS, mais également des extensions Joomla tiers sur votre site ! Pour effectuer la mise à jour Joomla 3.9.21, rendez-vous dans le gestionnaire des mises à jour.

Afin d’éviter de vous retrouver avec un site planté, nous vous recommandons d’effectuer la mise à jour Joomla de votre site seulement si vous avez les compétences nécessaires. Si ce n’est pas le cas, dans ce cas, contactez un de nos spécialistes Joomla au 09.54.43.67.20. Nous sommes experts dans la maintenance de site Joomla, la migration de site Joomla et le RGPD Joomla.

Ressources mentionnées

Articles en relation

Agence Joomla

Téléphone : 0672271069

Email : contact@sylvie-ceci.info

Lun Vend 8h00 18h00

Liens utiles