Découvrez comment Bedrock de Roots renforce la sécurité de WordPress grâce à une architecture moderne, une meilleure gestion des dépendances et une isolation efficace des fichiers sensibles.
Introduction
WordPress est le CMS le plus utilisé au monde — mais aussi l’un des plus attaqués. Sa popularité en fait une cible privilégiée pour les pirates informatiques : injections SQL, accès non autorisés, scripts malveillants…
Heureusement, une solution moderne existe pour renforcer sa structure et sa sécurité : Bedrock, un boilerplate développé par Roots.io.
Dans cet article, nous allons voir comment Bedrock sécurise votre installation WordPress et pourquoi il représente une base idéale pour les projets professionnels.
Qu’est-ce que Bedrock ?
Bedrock est une architecture modernisée de WordPress. Conçu par Roots.io, il transforme l’organisation classique d’un site WordPress pour la rendre plus propre, plus modulaire et surtout plus sécurisée.
Les principales caractéristiques :
Une structure de fichiers repensée avec un dossier
web/comme racine publique.Une gestion des dépendances via Composer (plugins, thèmes et même le core WordPress).
Des fichiers de configuration par environnement (développement, staging, production).
Une séparation claire entre le code applicatif et les fichiers accessibles au public.
En résumé, Bedrock apporte à WordPress ce que Laravel a apporté au développement PHP moderne.
Pourquoi renforcer la sécurité de WordPress ?
WordPress, par défaut, n’est pas dangereux — mais son installation classique expose beaucoup de fichiers au public :
Le dossier
wp-adminest accessible depuis le web.Les fichiers de configuration (
wp-config.php) contiennent des informations sensibles.Les thèmes et plugins sont parfois modifiables directement depuis l’administration.
Cette architecture ouverte facilite la vie des développeurs… mais aussi celle des attaquants.
C’est ici que Bedrock entre en jeu.
Comment Bedrock améliore la sécurité de WordPress
Séparation du dossier public et du cœur WordPress
Avec Bedrock, le dossier racine du site devient web/.
Le cœur WordPress est déplacé dans web/wp et les fichiers applicatifs dans web/app.
Résultat : les fichiers sensibles (configuration, vendors, git, etc.) ne sont plus accessibles via le navigateur.
Cette isolation limite fortement les attaques automatisées (scans de /wp-login.php, /readme.html, etc.).
Fichier .env pour les données sensibles
Les identifiants de base de données, les clés d’authentification ou les URLs du site sont stockés dans un fichier .env (non accessible publiquement et non versionné).
Cela empêche l’exposition accidentelle de données critiques dans Git ou sur le serveur.
Exemple :
DB_NAME=wordpress_db
DB_USER=secure_user
DB_PASSWORD=StrongPassword!
WP_ENV=production
DISALLOW_FILE_EDIT=true
Configuration par environnement
Grâce à son système de configuration (config/application.php, config/environments/), Bedrock permet d’appliquer des réglages différents selon l’environnement :
En développement, activer le debug.
En production, désactiver la modification de fichiers (
DISALLOW_FILE_MODS,DISALLOW_FILE_EDIT).
Cela réduit les risques d’erreurs humaines et empêche les pirates d’exploiter l’éditeur de fichiers du back-office.
Gestion des dépendances avec Composer
Avec Composer, chaque plugin, thème ou version du core WordPress est déclaré et versionné.
Vous savez exactement ce qui est installé, et sur quelle version.
Résultats :
Plus de « plugins fantômes » non suivis.
Des mises à jour contrôlées et traçables.
La possibilité de rollback rapide en cas de problème.
C’est une approche bien plus professionnelle que le téléchargement manuel.
Meilleures pratiques et structure propre
En imposant une architecture claire et modulaire, Bedrock encourage les bonnes pratiques :
Aucune donnée sensible exposée publiquement.
Un dépôt Git propre (on ne versionne pas le core ni les plugins).
Une maintenance facilitée.
Un site bien organisé, c’est un site plus facile à auditer, maintenir et sécuriser.
├── composer.json
├── config
│ ├── application.php # Primary wp-config
│ └── environments
│ ├── development.php
│ ├── staging.php
│ └── production.php
├── vendor # Composer dependencies
└── web # Public document root
├── app # WordPress content dir
│ ├── mu-plugins
│ ├── plugins
│ ├── themes
│ └── uploads
├── wp-config.php
├── index.php
└── wp # WordPress core
Check-list sécurité Bedrock
Pour tirer le meilleur de Bedrock côté sécurité :
Configurer le dossier racine (DocumentRoot) vers project/web
Protéger les fichiers .env, config/, et vendor/ contre l’accès HTTP
Versionner uniquement le code personnalisé et le composer.lock
Utiliser des mots de passe forts et des clés d’authentification dans .env
Désactiver l’édition des fichiers en production
Bloquer les accès non nécessaires (ex : XML-RPC, REST API si inutilisée)
Mettre à jour régulièrement les dépendances via Composer