Drupal est connu pour sa sécurité robuste, mais seulement si vous le configurez et le maintenez correctement. Dans ce guide, nous aborderons toutes les mesures de sécurité essentielles pour protéger votre site Drupal contre les attaques.

Pourquoi la sécurité de Drupal est-elle importante

Drupal est utilisé par des gouvernements et de grandes organisations précisément en raison de sa bonne sécurité. Mais chaque site web est une cible potentielle :

  • Les hackers recherchent des vulnérabilités
  • Les malwares peuvent infecter les visiteurs
  • Les données peuvent être volées
  • Votre site peut être utilisé pour du spam

Avec les bonnes mesures, vous pouvez prévenir 95 % de toutes les attaques.

Mises à jour comme première ligne de défense

Les mises à jour sont la mesure de sécurité la plus importante pour Drupal.

Suivre les avis de sécurité

Drupal publie des mises à jour de sécurité à des moments fixes :

  1. Suivez le Drupal Security Team
  2. Abonnez-vous aux notifications de sécurité
  3. Les mises à jour de sécurité sont publiées le mercredi
  4. Les mises à jour critiques sont annoncées immédiatement

Mettre à jour le cœur de Drupal

Gardez toujours le cœur à jour :

  1. Allez dans Rapports puis Mises à jour disponibles
  2. Vous verrez les mises à jour disponibles
  3. Les mises à jour de sécurité ont une étiquette rouge
  4. Faites d'abord une sauvegarde
  5. Exécutez la mise à jour

Via Composer (recommandé) :

# Vérifiez les mises à jour disponibles
composer outdated drupal/*
# Mettez à jour le cœur de Drupal
composer update drupal/core-recommended drupal/core-composer-scaffold --with-all-dependencies
# Exécutez les mises à jour de la base de données
drush updatedb
drush cache:rebuild

Mettre à jour les modules

Les modules peuvent également avoir des failles de sécurité :

  1. Allez dans Rapports puis Mises à jour disponibles
  2. Vérifiez l'onglet Mises à jour de sécurité uniquement
  3. Mettez à jour d'abord les modules avec des problèmes de sécurité
# Mettez à jour tous les modules
composer update drupal/*
# Mettez à jour un module spécifique
composer update drupal/webform

Mots de passe forts et authentification

Les mots de passe faibles sont une vulnérabilité courante.

Configurer la politique de mot de passe

  1. Allez dans Configuration puis Personnes
  2. Cliquez sur Paramètres du compte
  3. Configurez les exigences de mot de passe :
    • Longueur minimale
    • Caractères obligatoires (majuscule, chiffres, caractères spéciaux)
  4. Enregistrez les paramètres

Module de politique de mot de passe

Pour une politique plus détaillée :

composer require drupal/password_policy

Configurez des règles pour :

  • Longueur minimale de mot de passe (12+ caractères)
  • Types de caractères obligatoires
  • Historique des mots de passe
  • Date d'expiration

Authentification à deux facteurs

Ajoutez une couche de sécurité supplémentaire :

composer require drupal/tfa

Configuration :

  1. Allez dans Configuration puis TFA
  2. Choisissez la méthode d'authentification (TOTP, codes de récupération)
  3. Exigez 2FA pour les administrateurs
  4. Les utilisateurs le configurent via leur profil

Limiter les droits des utilisateurs

Le principe des droits minimaux est essentiel.

Réviser les rôles

  1. Allez dans Personnes puis Permissions
  2. Vérifiez chaque rôle pour des droits inutiles
  3. Supprimez les droits qui ne sont pas nécessaires
  4. Faites particulièrement attention à :
    • Droits de gestion de contenu
    • Droits d'administration
    • Droits d'exécution PHP

Pas de PHP dans le contenu

Le module PHP Filter a été supprimé de Drupal 8+ pour de bonnes raisons. Ne l'installez jamais. Utilisez plutôt :

  • Modules personnalisés pour des fonctionnalités dynamiques
  • Templates Twig pour l'affichage

Limiter les comptes administrateurs

  1. Minimisez le nombre de comptes administrateurs
  2. Utilisez des rôles spécifiques au lieu d'un administrateur complet
  3. Révisez régulièrement qui a quel accès

Droits de fichiers et sécurité du serveur

Des droits de fichiers corrects préviennent de nombreuses attaques.

Droits recommandés

Drupal a besoin de droits spécifiques :

# Dossiers : 755
find /path/to/drupal -type d -exec chmod 755 {} \;
# Fichiers : 644
find /path/to/drupal -type f -exec chmod 644 {} \;
# sites/default/files writable
chmod 755 sites/default/files
# settings.php readonly
chmod 444 sites/default/settings.php

Sécuriser settings.php

Après l'installation, settings.php doit être en lecture seule :

chmod 444 sites/default/settings.php
chmod 555 sites/default

Paramètres d'hôte de confiance

Configurez quels noms d'hôtes sont valides dans settings.php :

$settings['trusted_host_patterns'] = [
  '^www\.votredomaine\.fr$',
  '^votredomaine\.fr$',
];

Cela prévient les attaques par en-tête d'hôte.

Configurer SSL/HTTPS

Tous les sites Drupal doivent utiliser HTTPS.

Activer SSL

Chez Theory7, SSL est disponible gratuitement :

  1. Activez Let's Encrypt dans DirectAdmin
  2. Attendez que le certificat soit créé
  3. Testez si HTTPS fonctionne

Forcer HTTPS

Forcez HTTPS via .htaccess :

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Ou via settings.php :

$settings['https'] = TRUE;

Cookies sécurisés

Assurez-vous que les cookies ne sont envoyés que via HTTPS :

// Dans settings.php
ini_set('session.cookie_secure', 1);

Installer des modules de sécurité

Des modules supplémentaires renforcent votre sécurité.

Security Kit

composer require drupal/seckit

Configure :

  • Politique de sécurité du contenu (CSP)
  • Protection contre le clickjacking
  • Prévention des scripts inter-sites (XSS)

Honeypot

Protège contre les bots de spam :

composer require drupal/honeypot

Ajoute des champs invisibles que les bots remplissent, pas les utilisateurs légitimes.

Contrôle des inondations

Protège contre les attaques par force brute :

composer require drupal/flood_control

Configurez des limites pour :

  • Essais de connexion par IP
  • Essais de connexion par compte
  • Envois de formulaires de contact

reCAPTCHA

Protège les formulaires contre les bots :

composer require drupal/recaptcha

Configurez avec vos clés Google reCAPTCHA.

Surveillance et journalisation

Détectez rapidement les problèmes grâce à une bonne surveillance.

Voir les journaux Drupal

  1. Allez dans Rapports puis Messages de journal récents
  2. Filtrez par niveau de gravité
  3. Faites attention aux erreurs répétées
  4. Vérifiez les activités suspectes

Configurer le journal de la base de données

  1. Allez dans Configuration puis Développement
  2. Cliquez sur Journalisation et erreurs
  3. Définissez combien de messages sont conservés
  4. Journalisez les erreurs vers syslog pour un stockage permanent

Surveillance externe

Envisagez une surveillance externe pour :

  • Surveillance de la disponibilité
  • Scans de sécurité
  • Métriques de performance
  • Expiration des certificats SSL

Stratégie de sauvegarde

Les sauvegardes sont votre dernière ligne de défense.

Module Backup and Migrate

composer require drupal/backup_migrate

Configurez :

  1. Sauvegardes automatiques quotidiennes
  2. Stockage sur un emplacement externe
  3. Conservez plusieurs versions
  4. Testez régulièrement la restauration

Sauvegardes DirectAdmin

Combinez avec les sauvegardes DirectAdmin pour une sécurité supplémentaire.

Liste de contrôle de sécurité

Vérifiez régulièrement :

  • Cœur de Drupal et modules à jour
  • Mots de passe forts pour tous les comptes
  • Authentification à deux facteurs pour les administrateurs
  • Droits minimaux par rôle
  • Droits de fichiers corrects
  • HTTPS actif et forcé
  • Modules de sécurité installés
  • Journalisation active
  • Sauvegardes fonctionnelles

Articles connexes

Besoin d'aide ?

Nous sommes là pour vous ! Vous rencontrez un problème ou avez des questions ? Notre équipe de support est prête à vous aider personnellement. Envoyez-nous un message via le système de tickets - nous répondons généralement dans quelques heures et sommes heureux de vous aider.