Comment securiser WordPress et le rendre conforme au RGPD
Un guide pratique pour securiser votre site WordPress et le rendre conforme au RGPD. Couvre le renforcement du serveur, la securite des plugins, le chiffrement de la base de donnees, le consentement aux cookies et les exigences d'hebergement europeen.
WordPress propulse plus de 40 % du web, ce qui en fait la cible numero un des attaques automatisees. Si votre site WordPress traite des donnees d'utilisateurs europeens -- formulaires de contact, commandes e-commerce, inscriptions a des newsletters ou analytics -- vous avez egalement des obligations RGPD que la plupart des installations WordPress par defaut ne respectent pas.
Ce guide couvre les deux aspects : renforcer la securite de votre installation WordPress contre les menaces reelles, et s'assurer qu'elle repond aux exigences du droit europeen de la protection des donnees.
Les deux problemes d'un WordPress par defaut
Par defaut, WordPress presente deux lacunes critiques :
Les parametres de securite sont faibles. Les mises a jour automatiques ne couvrent que les versions mineures, la page de connexion est accessible publiquement a une URL connue, les permissions de fichiers sont souvent trop permissives, et la plupart des piles d'hebergement omettent des en-tetes de base comme Content-Security-Policy.
La conformite RGPD est absente. Le noyau WordPress depose des cookies, collecte les adresses IP dans les commentaires et ne fournit aucun mecanisme de consentement. Les plugins aggravent la situation -- chaque snippet analytics, constructeur de formulaire ou widget social peut introduire des transferts de donnees vers des tiers dont vous etes legalement responsable.
Corriger ces deux problemes necessite des modifications au niveau du serveur, de l'application et des plugins.
Renforcement au niveau du serveur
Avant de toucher a WordPress lui-meme, securisez le serveur sur lequel il fonctionne.
Utilisez un serveur heberge en Europe
Si votre audience est dans l'UE, votre serveur devrait l'etre aussi. Heberger chez un fournisseur europeen dans un centre de donnees de l'UE signifie que les donnees personnelles ne quittent jamais la juridiction europeenne. C'est le moyen le plus simple d'eviter les mecanismes complexes de transfert international de donnees.
Forcez HTTPS partout
Installez un certificat SSL (Let's Encrypt est gratuit) et forcez tout le trafic via HTTPS :
# .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ajoutez des en-tetes de securite
Ajoutez-les a votre configuration Nginx ou Apache :
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';" always;
Restreignez les permissions de fichiers
Les fichiers WordPress doivent appartenir a l'utilisateur du serveur web mais ne pas etre modifiables par tous :
find /var/www/wordpress -type d -exec chmod 755 {} \;
find /var/www/wordpress -type f -exec chmod 644 {} \;
chmod 600 /var/www/wordpress/wp-config.php
Le fichier wp-config.php contient les identifiants de la base de donnees -- il ne doit jamais etre lisible par les autres utilisateurs du systeme.
Renforcement de l'application WordPress
Deplacez wp-config.php au-dessus de la racine web
WordPress cherche automatiquement wp-config.php un repertoire au-dessus. Le deplacer la empeche l'acces direct via le web :
mv /var/www/wordpress/wp-config.php /var/www/wp-config.php
Desactivez l'edition de fichiers dans le tableau de bord
Empêchez les attaquants qui compromettraient un compte administrateur de modifier les fichiers de themes/plugins :
// wp-config.php
define('DISALLOW_FILE_EDIT', true);
Changez l'URL de connexion
Les chemins par defaut /wp-admin et /wp-login.php sont cibles par tous les bots sur internet. Utilisez un plugin comme WPS Hide Login pour changer l'URL en quelque chose d'unique.
Limitez les tentatives de connexion
Installez un plugin comme Limit Login Attempts Reloaded ou configurez fail2ban au niveau du serveur pour bloquer les attaques par force brute :
# /etc/fail2ban/jail.local
[wordpress]
enabled = true
filter = wordpress-auth
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
Maintenez tout a jour
Activez les mises a jour automatiques pour les versions mineures, les plugins et les themes :
// wp-config.php
define('WP_AUTO_UPDATE_CORE', 'minor');
add_filter('auto_update_plugin', '__return_true');
add_filter('auto_update_theme', '__return_true');
Pour les versions majeures, testez d'abord sur un environnement de staging.
Utilisez des prefixes de table robustes
Changez le prefixe de table par defaut wp_ lors de l'installation. Si le site est deja en production, c'est plus difficile a modifier mais cela reduit l'efficacite des attaques par injection SQL qui supposent des noms de tables par defaut.
Checklist de conformite RGPD
La securite technique n'est que la moitie du tableau. Voici ce dont vous avez besoin pour la conformite RGPD :
1. Consentement aux cookies
Vous devez obtenir un consentement explicite avant de deposer des cookies non essentiels. Cela inclut les analytics (Google Analytics, Matomo), les pixels marketing (Facebook, LinkedIn) et le contenu embarque (YouTube, Google Maps).
Utilisez une plateforme de gestion du consentement (CMP) qui :
- Bloque les scripts jusqu'a l'obtention du consentement (pas seulement une banniere qui ne fait rien)
- Permet un consentement granulaire par categorie
- Enregistre la preuve du consentement
- Offre un moyen simple de retirer le consentement
2. Politique de confidentialite
Votre politique de confidentialite doit lister :
- Quelles donnees personnelles vous collectez et pourquoi
- La base juridique de chaque activite de traitement
- Qui reçoit les donnees (hebergeur, service de messagerie, analytics)
- Combien de temps vous conservez les donnees
- Comment les utilisateurs peuvent exercer leurs droits (acces, suppression, portabilite)
3. Formulaires de contact et commentaires
Chaque formulaire qui collecte des donnees personnelles necessite :
- Un lien vers votre politique de confidentialite
- Une case a cocher de consentement (pour les communications marketing)
- La minimisation des donnees -- ne collectez que ce dont vous avez reellement besoin
Pour les commentaires WordPress, envisagez de les desactiver ou d'utiliser une solution auto-hebergee plutot que Disqus (qui transfere les donnees aux Etats-Unis).
4. Analytics sans transferts vers des tiers
Google Analytics transfere les donnees vers des serveurs americains, ce qui cree des complications RGPD apres l'arret Schrems II. Alternatives :
- Matomo (auto-heberge) -- analytics completes, les donnees restent sur votre serveur
- Plausible (heberge dans l'UE) -- leger, respectueux de la vie privee
- Fathom -- analytics simples avec option de residence des donnees dans l'UE
5. Conformite des emails et newsletters
Si vous utilisez Mailchimp ou des services similaires bases aux Etats-Unis, vous transferez les donnees des abonnes en dehors de l'UE. Envisagez des alternatives europeennes comme Brevo (anciennement Sendinblue) ou des solutions auto-hebergees comme Listmonk.
6. Droit a l'effacement
WordPress 4.9.6+ inclut un outil integre d'exportation et d'effacement des donnees sous Outils > Exporter/Effacer les donnees personnelles. Assurez-vous qu'il fonctionne et couvre tous les plugins qui stockent des donnees utilisateur.
Audit de securite des plugins
Les plugins sont la plus grande surface d'attaque de WordPress. Suivez ces regles :
- Supprimez les plugins inutilises -- meme les plugins desactives peuvent etre exploites
- Verifiez la reputation des plugins -- regardez la date de derniere mise a jour, les installations actives et l'activite du forum de support
- Auditez les flux de donnees des plugins -- le plugin envoie-t-il des donnees a des serveurs externes ? Verifiez la politique de confidentialite du plugin
- Minimisez les plugins -- chaque plugin est une vulnerabilite potentielle. Si vous pouvez obtenir le meme resultat avec quelques lignes dans
functions.php, faites-le
Sauvegardes de base de donnees et reprise apres sinistre
Sauvegardez votre base de donnees quotidiennement et stockez les sauvegardes dans un emplacement europeen separe :
mysqldump -u wp_user -p wordpress_db | gzip > \
/backups/wp_$(date +%F).sql.gz
Testez regulierement votre processus de restauration. Une sauvegarde que vous n'avez jamais testee n'est pas une sauvegarde.
Quand la securite WordPress devient un travail a plein temps
Maintenir WordPress securise et conforme au RGPD n'est pas une tache ponctuelle. Cela necessite une surveillance continue, des correctifs, des audits de plugins, des renouvellements de certificats et une verification des sauvegardes. Pour de nombreuses entreprises, cette charge operationnelle est insoutenable -- surtout quand une seule mise a jour oubliee peut mener a une violation de donnees ou a un manquement a la conformite.
Alplink propose un hebergement WordPress entierement gere sur une infrastructure europeenne souveraine. Nous gerons le renforcement de la securite, les mises a jour automatiques, les sauvegardes quotidiennes, les configurations serveur conformes au RGPD et la surveillance 24/7 -- le tout fonctionnant sur NixOS pour des deploiements reproductibles et auditables. Vos donnees restent en Europe, votre site reste securise, et vous restez concentre sur votre activite. En savoir plus sur alplink.eu.