École
...
Sécurité Joomla

Sécurité Joomla

Dmytro Sokol
Dmytro Sokol
Expert en hébergement(expérience professionnelle 17 ans)
1364
5 minute

Dans cet article, nous décrivons les étapes principales qui peuvent vous aider à sécuriser davantage votre site web conçu avec Joomla et à éviter qu’il ne soit piraté. Bien sûr, nous ne pouvons pas garantir que votre site sera sécurisé à 100 % après avoir appliqué ces mesures, car même les sites les plus sûrs (comme Facebook) peuvent être piratés. Néanmoins, nous vous conseillons de suivre les recommandations de cet article par mesure de précaution.

Remarque ! Nous vous recommandons vivement de consulter également les recommandations générales en matière de sécurité, car elles ne seront pas abordées dans cet article. Elles s’appliquent à tous les sites, quel que soit le CMS utilisé. Cet article présente des recommandations spécifiques à la sécurité du CMS Joomla.

Comment sécuriser un site construit avec Joomla ?

1. Mises à jour

N’oubliez pas de mettre votre CMS à jour régulièrement. Les versions plus récentes sont plus sûres, car les vulnérabilités découvertes précédemment y sont généralement corrigées.

2. Modules de sécurité

La plupart des étapes suivantes peuvent être automatisées au moyen de modules de sécurité. Toutefois, ces modules sont pour la plupart payants. Ils offrent de nombreuses fonctionnalités, notamment des notifications par e‑mail en cas de tentatives d’accès non autorisées. Les modules de sécurité Joomla les plus populaires sont RSFirewall! et Admin Tools.

3. .htaccess

Il est probable que le fichier htaccess.txt soit créé automatiquement. Vous devez le renommer en .htaccess et le configurer correctement afin de sécuriser votre site. Des consignes sont disponibles dans la base de connaissances de votre hébergeur.

4. Restriction d’accès par adresse IP

Limitez l’accès à la zone d’administration par adresse IP. Pour bloquer toutes les adresses IP sauf une, vous devez ajouter le texte suivant dans le fichier .htaccess :

order deny,allow
allow from xxx.xx.xxx.xx
deny from all

Remplacez xxx.xx.xxx.xx par l’adresse IP que vous utilisez pour vous connecter au panneau d’administration (ou par celle qui ne doit pas être restreinte).

Par la suite, seules les personnes se connectant depuis l’adresse IP indiquée auront accès au dossier administrator.

5. Extensions tierces

Ne téléchargez pas d’extensions tierces suspectes. Nous recommandons de les obtenir uniquement depuis le site officiel, car Joomla est en soi un CMS assez sécurisé ; toutefois, des pirates peuvent prendre la main sur votre site via des extensions ou des modules. Par exemple, vous installez un module de discussion ; un pirate peut y insérer du code malveillant à la place d’un commentaire ou d’une pièce jointe et accéder aux données de votre site. Si vous avez déjà installé des extensions tierces douteuses, nous vous recommandons de les supprimer.

6. Autorisations de fichiers

Configurez les permissions suivantes : 755 pour les dossiers et 644 pour tous les fichiers, à l’exception de configuration.php. Pour ce dernier, définissez 444.

7. Nom d’utilisateur du Super Administrateur

Ne choisissez pas « admin » comme nom d’utilisateur du Super Administrateur. Créez un identifiant complexe et non évident.

8. Activer SEF

Activer les liens SEF (Search Engine Friendly) n’est pas une méthode très efficace pour sécuriser votre site, mais cela vaut tout de même la peine d’être essayé.

9. Paramètres PHP

Désactivez les paramètres PHP suivants : register_globals, safe_mode, allow_url_fopen et allow_url_include. Activez également les fonctions disable_functions et open_basedir. Si vous ne pouvez pas modifier ces paramètres via le panneau de contrôle de l’hébergement, contactez le support de votre hébergeur afin de vérifier s’ils peuvent activer/désactiver ces paramètres.

10. FTP

Supprimez toutes les données FTP. Pour ce faire, cliquez sur Système, sélectionnez Configuration globale et cliquez sur l’onglet Serveur.

11. Durée de vie de session

Assurez-vous que la durée de session est de 10 à 15 minutes. Vous pouvez modifier les paramètres de session dans le menu Système en sélectionnant Configuration globale. Une fois cliqué, sélectionnez l’onglet Système.

12. Déplacer le fichier de configuration

Si possible, il est préférable de retirer le fichier configuration.php du dossier public (généralement, public_html). Pour ce faire, suivez les étapes ci‑dessous :

a) Copiez le fichier configuration.php et collez‑le dans tout autre dossier en dehors de public_html (par exemple, dans un dossier situé un niveau au‑dessus dans la hiérarchie de fichiers).

b) Repérez les fichiers /includes/defines.php et /administrator/includes/defines.php puis trouvez la ligne qui s’y trouve.

define( 'JPATH_CONFIGURATION', JPATH_ROOT );

c) Dans cette ligne, vous devez indiquer le nouvel emplacement du fichier configuration.php. Par exemple, si vous déplacez le fichier de public_html vers le dossier appelé « test » qui est un niveau au‑dessus du dossier public_html, la ligne doit ressembler à ceci :

define( 'JPATH_CONFIGURATION', JPATH_ROOT.DS.'..'.DS.'test' );

d) Déplacez le fichier configuration.php vers le nouveau dossier et supprimez‑le de l’ancien.

e) Notez que vous ne pourrez plus modifier la configuration du système via le panneau d’administration de Joomla. Dorénavant, vous devrez éditer directement le fichier configuration.php.

13. Journaux et fichiers temporaires

Nous recommandons de retirer également les fichiers temporaires (tmp) et journaux du dossier public_html. Pour ce faire, trouvez les lignes suivantes dans le fichier configuration.php (nous avons remplacé le chemin réel par des lettres) :

var $log_path = '/home/xxxx/yyyyyy/zzzz/logs/';
var $tmp_path = '/home/xxxx/yyyyyy/zzzz/tmp/';

Une fois ces lignes trouvées, modifiez les chemins existants (indiquez le chemin du nouveau répertoire) puis copiez les fichiers temporaires et les journaux vers le nouveau dossier.

14. Préfixe de base de données

Modifiez le préfixe de base de données par défaut. Vous trouverez ici des instructions détaillées. Si vous n’êtes pas à l’aise avec le fonctionnement d’une base de données, il vaut mieux ne pas effectuer de modifications vous‑même (les modules de sécurité décrits au point 2 sont une meilleure option). Cette méthode peut partiellement protéger votre site contre les injections SQL ; par exemple, elle peut empêcher un pirate d’accéder aux identifiants de connexion de l’administration (depuis la table jos_users). Néanmoins, pour une protection complète contre les injections SQL, nous recommandons d’utiliser des modules de sécurité (point 2).

15. Sauvegardes

Par précaution, il est recommandé d’effectuer des sauvegardes tous les jours. Si vous ne pouvez pas les réaliser aussi souvent, sauvegardez au moins votre site avant de modifier des paramètres ou d’installer un nouveau plugin ou module.

16. Analyse antivirus

Analysez vos sites web à la recherche de virus au moins toutes les deux semaines et surtout après l’installation d’un nouveau plugin ou module.

17. Certificats SSL

De nombreuses entreprises proposent des certificats SSL, comme Comodo, Symantec ou Let’s Encrypt. Ce dernier est généralement proposé gratuitement par les hébergeurs. Pour activer un certificat SSL, il est nécessaire de modifier les paramètres correspondants dans le panneau de contrôle de l’hébergement et dans le fichier configuration.php de la manière suivante :

Repérez la directive live_site et saisissez

$live_site = ‘https//yourdomain.tld’;

Assurez‑vous qu’il n’y a PAS de slash après le domaine.

Définissez la valeur force_ssl sur « 2 ». Cela signifie que le site et son panneau d’administration ne seront accessibles qu’en https.

Si vous avez des suggestions concernant la sécurité des sites Joomla, n’hésitez pas à les laisser dans la section des commentaires et nous les ajouterons avec plaisir à l’article. Veuillez également noter que la mise en œuvre de l’une des mesures de sécurité ci‑dessus peut influer sur les performances de votre site. Assurez‑vous donc d’avoir sauvegardé votre site avant toute modification.

Aucune réponse à votre question ?

Posez votre question et recevez par e-mail la réponse d’un expert, membre de notre équipe d’assistance technique.

Nos experts

notre expert Abdullah
Abdullah
notre expert Mario De Paolis
Mario De Paolis
notre expert Nickola Naous
Nickola Naous
notre expert Oliver Salo
Oliver Salo
notre expert László Kovács
László Kovács
notre expert Maxim Malacili
Maxim Malacili
notre expert Oleh Kharitinov
Oleh Kharitinov
notre expert Pavan Nikam
Pavan Nikam
notre expert Md Billal Hossain Sarker
Md Billal Hossain Sarker

39 d’experts prêts à vous aider à faire le bon choix